私はSMSアプリを開発しています。今、私のアプリは、携帯電話のデフォルトのSMSアプリです。つまり、私のアプリは最初に着信SMSを受信していることを意味します。今、私は自分のアプリから他のapp(Built-in sms app)に意図的に着信SMSを送りたいと思っています。Android - アンドロイドの他の(Biult-in SMSアプリ)アプリへのSMSの意図をブロードキャスト
注:私はデフォルトのSMSアプリケーションを変更したくありません。
内蔵のSMSアプリに自分のアプリからのブロードキャストを送信するために私のコード -
context.sendBroadcast(intent.setClassName(builtInSmsPackage, "com.android.mms.transaction.SmsReceiverService")
.setPackage(builtInSmsPackage)
.setAction("android.provider.Telephony.SMS_RECEIVED"));
しかし、内蔵のSMSアプリのカントは、私は私のアプリから送信していたSMS意図を受け取ります。
あなたはそうする必要はありません。システムは 'SMS_RECEIVED'ブロードキャストを受信しているすべてのアプリに送信します。あなたのデフォルトアプリはそれが起こるために何もする必要はありません。ただし、専用のSMSアプリは、デフォルトのアプリでない場合、その機能のほとんどを無効にすることが期待されているため、アプリがデフォルトのときにそのブロードキャストをリッスンしない可能性があります。 –
ゼリー豆までうまく動作します。しかしkitkatから、私のアプリのデフォルトのSMSアプリをSMSにする必要がありました。私のアプリだけがSMSを受け取ることができます。私のアプリはデフォルトのSMSアプリですが、もう誰もSMSを受信できません。デフォルトのSMSアプリケーションにブロードキャストを送信する私のコードは - context.sendBroadcast(intent.setClassName(builtInSmsPackage、 "com.android.mms.transaction。 //setpackage(builtInSmsPackage) .setAction( "android.provider.Telephony.SMS_RECEIVED")); –
「しかし、kitkatから、私のアプリのデフォルトのSMSアプリケーションをsmsを受信するために必要としました。」 - いいえ、それですあなたのアプリは着信SMSを受信するだけのデフォルトである必要はありません。「SMS_RECEIVED」アクションの受信者を登録し、 'RECEIVE_SMS'アクセス許可を取得してください。あなたのアプリはそれをブロードキャストするのに必要な許可を保持していないので、それはうまくいかないだろう。受信機。 –