문자 수신을 할경우 textview에 수신자 연락처와 메시지를 표시하고 싶습니다.

 

작성 코드는

main 부분은

-----------------------------------------------------------------------------------------------------------------------------------------------------

package kwu.ac.final_;

import android.app.Activity;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class SMS extends Activity {
 Button Sendbtn;
 EditText InputNumber;
 EditText InputText;
 TextView ReceiveMSG;
 String SENT = "SMS_SENT";
 String DELIVERED="SMS_DELIVERED";
 private String test2 = "";

    @Override
    protected void onNewIntent(Intent intent) {

           super.onNewIntent(intent);
           ReceiveMSG = (TextView)findViewById(R.id.textView3);
           test2 = intent.getStringExtra("test2");
           ReceiveMSG.setText(test2);
    }
 
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

.

이부분은 문자 송신 부분

.

}

}

--------------------------------------------------------------------------------------------------------------------------

 

문자 수신은

---------------------------------------------------------------------------------------------------------------------------

package kwu.ac.final_;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.widget.Toast;

public class Smsreceiver extends BroadcastReceiver {
 static final String logTag = "SmsReceiver";
    static final String ACTION = "android.provider.Telephony.SMS_RECEIVED";

 @Override
 public void onReceive(Context context, Intent intent) {
  if (intent.getAction().equals(ACTION)) {
            //Bundel null check
          Bundle bundle = intent.getExtras();
            if (bundle == null) {
                   return;
            }     
            //pdu object null check
            Object[] pdusObj = (Object[]) bundle.get("pdus");
            if (pdusObj == null) {
                   return;
            }
           
            String str = "";
            //message
            SmsMessage[] smsMessages = new SmsMessage[pdusObj.length];
            for (int i = 0; i < pdusObj.length; i++) {
                   smsMessages[i] = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
                   str = "SMS from"+smsMessages[i].getOriginatingAddress();
                   str +="\n";
                   str += smsMessages[i].getMessageBody().toString(); // 임의의 스트링 변수에 값 넣음
             }
           
            Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
           
            intent.putExtra("test2", str);
            intent.setClass(context, RedirectActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(intent);
   }
  
 }

}

---------------------------------------------------------------------------------------------------------------------------

문자 수신하는 것을 전달 받아서 main에 넘겨줄 소스는

 

package kwu.ac.final_;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;

public class RedirectActivity extends Activity {
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  Intent intent = getIntent();
  intent.setClass(RedirectActivity.this, SMS.class);
  intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
  startActivity(intent);
  finish();
 }
}
---------------------------------------------------------------------------------------------------------------------------

웹에 올려주신 자료들을 모아 위의 소스와 같이 작성 하였습니다.

하지만 DDMS를 통해 문자를 보낼때 문자 수신은 되지만 아무런 반응이 없습니다.

왕 초보 수준이라 어디부터 손보고 이해해야 할지 답이 안나오네요

고수분들 도와주세요~~