この問題は、 Android 4.1.1 を実行しているSamsung Galaxy SIII でのみ発生します。Samsung Galaxy Ace および Samsung Galaxy Y では問題ありません。SMS を受信しても、受信したブロードキャスト SMS が起動しません。電話に他の SMS アプリはインストールされていません。
SMSブロードキャストを受信するために次のコードを使用しています
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 へのアクセス権がありません。この 2 日間、Android の迷路で原因を突き止めようとしましたが、何の助けにもなりませんでした。