package my.AndroidSms;
import android.app.Activity;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.telephony.SmsMessage;
import android.util.Log;
import android.widget.Toast;
public class SmsReceiver extends BroadcastReceiver {
 Location location;
 LocationManager locationManager;
 Context mContext;
 @Override
 public void onReceive(Context arg0, Intent arg1) {
  // TODO Auto-generated method stub
  Bundle bundle = arg1.getExtras();
  SmsMessage[] msgs = null;
  String number = "";
  String message = "";
  mContext = arg0;
  if (bundle != null) {
   Object[] pdus = (Object[]) bundle.get("pdus");
   msgs = new SmsMessage[pdus.length];
   for (int i = 0; i < msgs.length; i++) {
    msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
    number = msgs[i].getOriginatingAddress(); // 전화번호
    message = msgs[i].getMessageBody().toString();
    Log.d("SmsReceiver", "number:" + number + " Message :"
      + message);
    Toast.makeText(arg0,
      "number:" + number + " Message :" + message,
      Toast.LENGTH_LONG).show();
    if (message.equals("1234")) {
     Log.d("SmsReceiver", "call sendMyLocation(context)");
          sendSMS(number, message);
    }
   }
  }
 }
 
  location = locationManager.getLastKnownLocation(provider);
  if (location == null) {
   try {
    Toast.makeText(context, "에뮬레이터 GPS를 작동해 주세요", 10000).show();
    Thread.sleep(10000);
   } catch (InterruptedException e) {
    e.printStackTrace();
   }
   location = locationManager.getLastKnownLocation(provider);
  }
 }
 private void sendSMS(String phoneNumber, String message) {
  /*
   * PendingIntent pi = PendingIntent.getActivity(this, 0, new
   * Intent(this, AndroidSms.class), 0); SmsManager sms =
   * SmsManager.getDefault(); sms.sendTextMessage(phoneNumber, null,
   * message, pi, null);
   */
  String SENT = "SMS_SENT";
  String DELIVERED = "SMS_DELIVERED";
  PendingIntent sentPI = PendingIntent.getBroadcast(mContext, 0,
    new Intent(SENT), 0);
  PendingIntent deliveredPI = PendingIntent.getBroadcast(mContext, 0,
    new Intent(DELIVERED), 0);
  // ---when the SMS has been sent---
  mContext.registerReceiver(new BroadcastReceiver() {
   @Override
   public void onReceive(Context arg0, Intent arg1) {
    switch (getResultCode()) {
    case Activity.RESULT_OK:
     Toast.makeText(mContext, "SMS sent", Toast.LENGTH_SHORT)
       .show();
     break;
    case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
     Toast.makeText(mContext, "Generic failure",
       Toast.LENGTH_SHORT).show();
     break;
    case SmsManager.RESULT_ERROR_NO_SERVICE:
     Toast.makeText(mContext, "No service", Toast.LENGTH_SHORT)
       .show();
     break;
    case SmsManager.RESULT_ERROR_NULL_PDU:
     Toast.makeText(mContext, "Null PDU", Toast.LENGTH_SHORT)
       .show();
     break;
    case SmsManager.RESULT_ERROR_RADIO_OFF:
     Toast.makeText(mContext, "Radio off", Toast.LENGTH_SHORT)
       .show();
     break;
    }
   }
  }, new IntentFilter(SENT));
  // ---when the SMS has been delivered---
  mContext.registerReceiver(new BroadcastReceiver() {
   @Override
   public void onReceive(Context arg0, Intent arg1) {
    switch (getResultCode()) {
    case Activity.RESULT_OK:
     Toast.makeText(mContext, "SMS delivered",
       Toast.LENGTH_SHORT).show();
     break;
    case Activity.RESULT_CANCELED:
     Toast.makeText(mContext, "SMS not delivered",
       Toast.LENGTH_SHORT).show();
     break;
    }
   }
  }, new IntentFilter(DELIVERED));
  SmsManager sms = SmsManager.getDefault();
  sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);
 }
}

위와 같은 소스로 되어 있습니다
헌데.. 
문자 수신까지는 잘 되는데. 다시 발신하려고 하면 
죽어 나가네요. 
죽는 시점은 
mContext.registerReceiver(new BroadcastReceiver())
이 부분 입니다. 
그리고 LOG를 확인하면
01-19 02:32:33.269: ERROR/AndroidRuntime(31914): Uncaught handler: thread main exiting due to uncaught exception
01-19 02:32:33.409: ERROR/AndroidRuntime(31914): java.lang.RuntimeException: Unable to start receiver my.AndroidSms.SmsReceiver: android.content.ReceiverCallNotAllowedException: IntentReceiver components are not allowed to register to receive intents
01-19 02:32:33.409: ERROR/AndroidRuntime(31914):     at android.app.ActivityThread.handleReceiver(ActivityThread.java:2646)
01-19 02:32:33.409: ERROR/AndroidRuntime(31914):     at android.app.ActivityThread.access$3100(ActivityThread.java:119)
01-19 02:32:33.409: ERROR/AndroidRuntime(31914):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
01-19 02:32:33.409: ERROR/AndroidRuntime(31914):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-19 02:32:33.409: ERROR/AndroidRuntime(31914):     at android.os.Looper.loop(Looper.java:123)
01-19 02:32:33.409: ERROR/AndroidRuntime(31914):     at android.app.ActivityThread.main(ActivityThread.java:4363)
01-19 02:32:33.409: ERROR/AndroidRuntime(31914):     at java.lang.reflect.Method.invokeNative(Native Method)
01-19 02:32:33.409: ERROR/AndroidRuntime(31914):     at java.lang.reflect.Method.invoke(Method.java:521)
01-19 02:32:33.409: ERROR/AndroidRuntime(31914):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
01-19 02:32:33.409: ERROR/AndroidRuntime(31914):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
01-19 02:32:33.409: ERROR/AndroidRuntime(31914):     at dalvik.system.NativeStart.main(Native Method)
01-19 02:32:33.409: ERROR/AndroidRuntime(31914): Caused by: android.content.ReceiverCallNotAllowedException: IntentReceiver components are not allowed to register to receive intents
01-19 02:32:33.409: ERROR/AndroidRuntime(31914):     at android.app.ReceiverRestrictedContext.registerReceiver(ApplicationContext.java:126)
01-19 02:32:33.409: ERROR/AndroidRuntime(31914):     at android.app.ReceiverRestrictedContext.registerReceiver(ApplicationContext.java:120)
01-19 02:32:33.409: ERROR/AndroidRuntime(31914):     at my.AndroidSms.SmsReceiver.sendSMS(SmsReceiver.java:146)
01-19 02:32:33.409: ERROR/AndroidRuntime(31914):     at my.AndroidSms.SmsReceiver.onReceive(SmsReceiver.java:59)
01-19 02:32:33.409: ERROR/AndroidRuntime(31914):     at android.app.ActivityThread.handleReceiver(ActivityThread.java:2637)


인데 뭐가 문제 일까요??