2012-03-05 124 views
-2

我在android应用程序的短信中遇到了一个小问题。我需要您的帮助来接收我向其发送消息的配方地址。短信android接收函数

示例代码如下。

public void oncall() { 
     // public void onReceive(Context context, Intent intent) { 
     // ---get the SMS message passed in--- 
     Bundle bundle = new Bundle(); // intent.getExtras(); 

     SmsMessage[] msgs; 
     // String str = ""; 
     if (bundle != null) { 
      // ---retrieve the SMS message received--- 
      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]); 
       String Mobno = msgs[i].getOriginatingAddress(); 
       // String message = msgs[i].getMessageBody().toString(); 
       output.setText("" + Mobno); 
      } 
      // ---display the new SMS message--- 
      // Toast.makeText(context, str, Toast.LENGTH_SHORT).show(); 
     } 
    } 
+0

什么错误u的越来越u的使用字符串Mobno =封邮件[I] .getOriginatingAddress();你将获得手机号码 – user1203673 2012-03-05 07:07:39

+1

没有错误的描述... -1。 – JoxTraex 2012-03-05 07:16:49

+0

我在做类似的事情! http://stackoverflow.com/questions/14452808/sending-and-receiving-mms-in-android – toobsco42 2013-01-22 08:13:07

回答

1
 Bundle bundle = intent.getExtras(); 
    if (bundle != null) 
{ 
    Object[] pdus = (Object[]) bundle.get("pdus"); 
    for (Object pdu : pdus) 
{ 
    SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdu); 

if(smsMessage.getOriginatingAddress() != null) 
{ 
String num = smsMessage.getOriginatingAddress(); 

} 
} 
} 
+0

我错了我的问题。我为此道歉。我怀疑我是在单一活动中创造2个功能。一个函数是send(),另一个函数是receive()消息。我需要获取我向其发送消息的手机号码。 – user1239393 2012-03-05 07:21:08

+0

上述代码用于实现SmsReceiver类的onReceive方法,它扩展了BroadcastReceiver – 2012-03-05 07:30:33