我只在运行 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 的迷宫中找到原因,但没有任何帮助。