我正在尝试创建一个应用程序来监控传入的 SMS 消息,并通过传入的 SMS 启动一个程序,它也应该从 SMS 中读取内容。
工作流程:
public class SmsListener extends BroadcastReceiver{ private SharedPreferences preferences; @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){ Bundle bundle = intent.getExtras(); //---get the SMS message passed in--- SmsMessage[] msgs = null; String msg_from; if (bundle != null){ //---retrieve the SMS message received--- try{ 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]); msg_from = msgs[i].getOriginatingAddress(); String msgBody = msgs[i].getMessageBody(); } }catch(Exception e){ // Log.d("Exception caught",e.getMessage()); } } } } }
注意:在您的清单文件中添加 BroadcastReceiver-
<receiver android:name=".listener.SmsListener"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver>
添加此权限:
<uses-permission android:name="android.permission.RECEIVE_SMS" />