2012-04-05 99 views
0

我想从我们的应用程序发送和接收短信,并发送成功,但接收显示在我的网站上展示的代码的SmsMessage类中的显示弃用。所以,我想要一个接收方法来接收短信,这是不被弃用的。请为我提供正确的解决方案。如何从我们的android应用程序接收短信?

接收代码:

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

public class SmsReceiver extends BroadcastReceiver 
{ 

    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
     //---get the SMS message passed in--- 
     Bundle bundle = intent.getExtras();   
     SmsMessage[] msgs = null; 
     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]);     
       str += "SMS from " + msgs[i].getOriginatingAddress();      
       str += " :"; 
       str += msgs[i].getMessageBody().toString(); 
       str += "\n";   
      } 
      //---display the new SMS message--- 
      Toast.makeText(context, str, Toast.LENGTH_SHORT).show(); 
     }       
    } 
} 
+0

我做类似的东西在这里! http://stackoverflow.com/questions/14452808/sending-and-receiving-mms-in-android – toobsco42 2013-01-22 08:28:33

回答

3

import android.telephony.gsm.SmsMessage;

以上应改为:

import android.telephony.SmsMessage;

+0

和FYI,'telephony.gsm.SmsMessage'是用于当你不得不在CDMA和GSM手机之间指定的时候。现在你不需要指定'.gsm'或'.cdma',因为Android变得更聪明了。 – Jakar 2012-04-06 03:11:37

相关问题