android虚拟机的拦截短信有关问题 求大神解释
android虚拟机的拦截短信问题 求大神解释
在BroadcastReceiver中
可是当我给虚拟机发短信的时候 System.out.println("拦截短信");
却一点反应都没···
求大神解释.
------解决方案--------------------
解决了……接分……
如果有没有碰到这种问题的童鞋
记得在AndroidManifest.xml里面把优先级改成10000就OK了。
在BroadcastReceiver中
- Java code
public void onReceive(Context context, Intent intent) { System.out.println("拦截短信"); String action = intent.getAction(); if ("android.provider.Telephony.SMS_RECEIVED".equals(action)) { Bundle bundle = intent.getExtras(); Object[] msgs = (Object[]) bundle.get("pdus"); if (msgs != null) { for (Object msg : msgs) { SmsMessage smsMsg = SmsMessage.createFromPdu((byte[]) msg); String phoneNumber = smsMsg.getOriginatingAddress(); //去86 if(phoneNumber.length() > 11){ phoneNumber = phoneNumber.substring(phoneNumber.length() - 11); } System.out.println("拦截消息"+ContactAdapter.messageFilterMap.keySet().contains(phoneNumber)); if (ContactAdapter.messageFilterMap.keySet().contains(phoneNumber)) { this.abortBroadcast(); } System.out.println(smsMsg.getOriginatingAddress() + " " + smsMsg.getMessageBody() + " " + smsMsg.getIndexOnIcc()); } } } }
- XML code
<receiver android:name=".interceptor.CoffeeInterceptor2"> <intent-filter android:priority="1000"> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.READ_SMS" /> <uses-permission android:name="android.permission.SEND_SMS" />
可是当我给虚拟机发短信的时候 System.out.println("拦截短信");
却一点反应都没···
求大神解释.
------解决方案--------------------
解决了……接分……
如果有没有碰到这种问题的童鞋
记得在AndroidManifest.xml里面把优先级改成10000就OK了。
- XML code
<receiver android:name=".SMSReceiver"> <intent-filter android:priority="10000"> <action android:name="android.provider.Telephony.SMS_RECEIVED"></action> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver>