Android系统广播实现短信监听

来源:互联网 发布:linux系统编程 第2版 编辑:程序博客网 时间:2024/06/15 21:45
public class MySMS extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if("android.provider.Telephony.SMS_RECEIVED".contains(intent.getAction())){
Log.i("test","收到信息了");
Bundle bundle=intent.getExtras();
Object object[]= (Object[]) bundle.get("pdus");
SmsMessage[] message=new SmsMessage[object.length];
for (int i = 0; i < object.length; i++) {
message[i]=SmsMessage.createFromPdu((byte[])object[i]);
}
for (SmsMessage smsMessage : message) {
String address=smsMessage.getOriginatingAddress();
String body=smsMessage.getDisplayMessageBody();
Log.i("test",address+":"+body);
}
}
}
}
 来自CODE的代码片
MySMS.java


进行配置:

  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19
<!-- 短信权限 -->
<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher"
android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true" android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".MySMS">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"></action>
</intent-filter>
</receiver>
</application>