0
アプリをデフォルトのメッセージングアプリとして設定すると、受信したすべてのメッセージは他のメッセージアプリに表示されません。ここに私のSmsReceiverとマニフェストがあります。アプリをデフォルトのメッセージングアプリとして設定した後、他のメッセージングアプリにテキストメッセージが表示されないのはなぜですか?
@Override
public void onReceive(Context context, Intent intent) {
Object[] smsExtra = (Object[]) intent.getExtras().get("pdus");
String body = "";
for (int i = 0; i < smsExtra.length; ++i) {
SmsMessage sms = SmsMessage.createFromPdu((byte[]) smsExtra[i]);
body += sms.getMessageBody();
}
Notification notification = new Notification.Builder(context)
.setContentText(body)
.setContentTitle("New Message")
.setSmallIcon(R.drawable.ic_alert)
.setStyle(new Notification.BigTextStyle().bigText(body))
.build();
NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(context);
notificationManagerCompat.notify(1, notification);
}
<receiver
android:name=".SmsReceiver"
android:permission="android.permission.BROADCAST_SMS"
android:enabled="false"
android:exported="true" >
<intent-filter android:priority="0" >
<action android:name="android.provider.Telephony.SMS_DELIVER" />
</intent-filter>
</receiver>
メッセージは通知として表示され、他のメッセージングアプリケーションには表示されません。実際には、MMSを送信するためだけにデフォルトでアプリを設定したいので、自分のアプリで着信メッセージを処理したくありません。
ありがとうございます。
は '私のSmsReceiverとマニフェストfile.'ある拡張動作しますか?あなたの質問を編集してください。 – Xenolion
woops私はちょうど投稿しました。 –
デフォルトのアプリは、すべての着信SMSをプロバイダに書き込む責任があります。それはすべての着信MMSにも責任があります。あなたのアプリがデフォルトの場合、それはかなり本格的なメッセージングアプリでなければなりません。 –