web-dev-qa-db-ja.com

Android送信用ブロードキャストレシーバーSMSメッセージ?

BroadcastReceiverを作成し、Android.provider.Telephony.SMS_RECEIVEDアクションフィルターを使用して構成したので、電話受信テキストのたびに呼び出されます。

電話が送信テキスト(できればそれを送信するアプリケーションから独立している)のたびにアプリケーションに通知されるイベント/アクションまたは他の方法はありますか?

これまでのところ、私が見る唯一のオプションは、コンテンツプロバイダーにcontent://sms/sentをポーリングすることです。これは、アプリケーションがそこに配置しないことを選択できるため、送信されたすべてのテキストを取得することすらできません。

25
Josef Pfleger

残念ながら、(現在) BroadcastReceiver を実装する方法はありません。標準のSMSアプリケーションは SmsManger を使用してメッセージを送信しますが、送信および配信されたインテントの具体的な内部クラス(SmsReceiver.classおよびMessageStatusReceiver.classそれぞれ)。それは慰めであるというわけではありませんが、Smsアプリケーションの ソース で次のコメントを見つけることができます:

// TODO: Fix: It should not be necessary to
// specify the class in this intent.  Doing that
// unnecessarily limits customizability.

最良の代替策はポーリングであるようですcontent://sms/sent、潜在的に ContentObserver を使用します。

21
Josef Pfleger