2011-04-17 63 views
0

如何獲得傳入短信的電話號碼?如何獲得傳入短信的電話號碼?

我寫了BroadcastRecieverthis link一樣,但是我沒有得到任何輸出。此外,BroadcastReciever中的Toast消息不會顯示。

這是另一個sms.java文件,我使用該文件BroadcastReciever

public class SMS extends Activity { 
    /** Called when the activity is first created. */ 
    Button btn; 
    EditText edt1; 
    EditText edt2; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     btn=(Button) findViewById(R.id.btn1); 
     edt1=(EditText) findViewById(R.id.edt1); 
     edt2=(EditText) findViewById(R.id.edt2); 

     btn.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       String phone=edt1.getText().toString(); 
       String message=edt2.getText().toString(); 

       if (phone.length()>0 && message.length()>0) 
        sendSMS(phone, message); 
       else 
        Toast.makeText(getApplicationContext(), 
         "Enter the phone_no & message.", Toast.LENGTH_SHORT).show(); 
      } 
     }); 
    } 

    private void sendSMS(String phoneNumber, String message) 
    { 
     Intent i1 = new Intent(this, SMS.class); 
     PendingIntent pi = PendingIntent.getActivity(this, 0, 
                i1 , 0); 
     SmsManager SMS1 = SmsManager.getDefault(); 
     SMS1.sendTextMessage(phoneNumber, null, message, pi, null); 
    } 
} 

回答

2

您可以通過以下方式獲取收到的短信的電話號碼。

Bundle bundle = intent.getExtras(); 
SmsMessage[] msgs = null; 
    String string = ""; 
    String phone = ""; 

    if (bundle != null) 
    { 
     //---receive the SMS message-- 
     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]); 
      phone = msgs[i].getOriginatingAddress(); // Here you can get the phone number of SMS sender. 
      string += msgs[i].getMessageBody().toString(); // Here you can get the message body. 
      } 
    } 

你需要的重要的事情就是提及清單文件中的許可(即)。在您的廣播接收器類中,您必須在您的意圖過濾器中提及<actionandroid:name="android.provider.Telephony.SMS_RECEIVED">

相關問題