Android上监听收到的短信(SMS)

Android SDK1.1 验证可行。

1.实现一个Receiver【收到的是PDU,需要从PDU中还原出SMSMessage】

Java代码
  1. public void onReceive(Contextctx,Intentintent){
  2. Log.d( "SMSReceiver" , "amessagereceived" );
  3. Bundlebundle=intent.getExtras();
  4. if (bundle!= null ){
  5. Object[]pdus=(Object[])bundle.get( "pdus" );
  6. SmsMessage[]messages= new SmsMessage[pdus.length];
  7. for ( int i= 0 ;i<pdus.length;i++){
  8. messages[i]=SmsMessage.createFromPdu(( byte [])pdus[i]);
  9. }
  10. for (SmsMessagemessage:messages){
  11. StringstrFrom=message.getDisplayOriginatingAddress();
  12. StringstrMsg=message.getDisplayMessageBody();
  13. Log.d( "SMSReceiver" , "From:" +strFrom);
  14. Log.d( "SMSReceiver" , "Msg:" +strMsg);
  15. }
  16. }
  17. }

2.配置应用permission,允许接收SMS。在AndroidManifest.xml中

Xml代码
  1. < uses-permission android:name = "android.permission.RECEIVE_SMS" />

3.配置Receiver的Intent-Filter,可以接收SMS。在AndroidManifest.xml中

Xml代码
  1. < receiver android:name = ".app.SMSReceiver" >
  2. < intent-filter >
  3. < action android:name = "android.provider.Telephony.SMS_RECEIVED" />
  4. </ intent-filter >
  5. </ receiver >

4.启动模拟器,进入模拟器的console,模拟接收一条短信

telnet localhost 5554

sms send 110 aaaaaaaa

然后在Logcat中就可以看到接收到的sms信息了

你可能感兴趣的:(android)