0

我只在运行 Android 4.1.1的三星 Galaxy SIII上遇到这个问题。三星 Galaxy Ace 和三星 Galaxy Y 上没有问题。收到短信时,收到的广播短信没有启动。手机上没有安装其他短信应用程序。

我正在使用以下代码接收短信广播

    smsReceiver = new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {

        Log.d(TAG, "Inside onReceive of smsReceiver");
        Bundle bundle = intent.getExtras();
        Object[] messages = (Object[]) bundle.get("pdus");
        SmsMessage[] sms = new SmsMessage[messages.length];
        // Create messages for each incoming PDU
        for (int n = 0; n < messages.length; n++) {
            sms[n] = SmsMessage.createFromPdu((byte[]) messages[n]);
        }
        for (SmsMessage msg : sms) {
            //do something
        }
    }
};

IntentFilter intentFilter = new IntentFilter();

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {

    intentFilter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY - 1);

} else {
    // set Interger.MAX_VALUE because other apps like Handcent are intercepting
    intentFilter.setPriority(Integer.MAX_VALUE);

}
intentFilter.addAction("android.provider.Telephony.SMS_RECEIVED");
// register receiver for receive SMS
registerReceiver(smsReceiver, intentFilter);

我在清单中设置了以下权限

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

我没有 logcat 访问权限。我花了两天时间试图在 Android 的迷宫中找到原因,但没有任何帮助。

4

0 回答 0