当前位置: 代码迷 >> Android >> android虚拟机的拦截短信有关问题 求大神解释
  详细解决方案

android虚拟机的拦截短信有关问题 求大神解释

热度:76   发布时间:2016-05-01 21:07:37.0
android虚拟机的拦截短信问题 求大神解释
在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>
  相关解决方案