簡體   English   中英

BroadcastReceiver不適用於SMS_RECEIVED

[英]BroadcastReceiver not working for SMS_RECEIVED

我正在嘗試使用此代碼以編程方式在活動上注冊BroadcastReceiver

br=new BroadcastReceiver() {                        
            private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
            private static final String TAG = "cyb";

        @Override
        public void onReceive(Context context, Intent intent) {
            Toast.makeText(context, "ok", Toast.LENGTH_LONG).show();
             Log.e(TAG, "Intent recieved: " + intent.getAction());

                if (intent.getAction().equals(SMS_RECEIVED)) {
                    Bundle bundle = intent.getExtras();
                    if (bundle != null) {
                        Object[] pdus = (Object[])bundle.get("pdus");
                        final SmsMessage[] messages = new SmsMessage[pdus.length];
                        for (int i = 0; i < pdus.length; i++) {
                            messages[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
                        }
                        if (messages.length > -1) {
                            Log.e(TAG, "Message recieved: " + messages[0].getMessageBody());
                        }
                    }
                }
        }
    };      

    IntentFilter inf=new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
    inf.setPriority(999);
    registerReceiver(br, inf);

我還將此權限添加到AndroidManifest.xml

 <uses-permission android:name="android.permission.RECEIVE_SMS"/>

我的應用程序在收到新的短信時不會收到任何通知。我正在使用帶有環聊和GoSMS的Android 4.2

更新2:

卸載GOSMS后,它正在工作。但我想接收SMS_RECEIVED意圖操作,即使用戶安裝了GoSMS應用程序。是否可能? 任何替代方案?

您還需要實現MMS接收器+ HeadlessSmsSendService + ComposeSmsActivity

有關詳細信息,請參閱鏈接: http//android-developers.blogspot.fr/2013/10/getting-your-sms-apps-ready-for-kitkat.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM