2013-12-10 12 views
7

私のAndroidアプリはSMSを使って通知を黙って送信します。 Kitkat以前は、これらの通知はSMSプロバイダに記録されていなかったため、ユーザーの会話リストには表示されませんでした。これは、アプリケーションが望む動作です。Android KitkatのSMSをデフォルト以外のアプリからSMSに送信する方法

Kitkat SMSの変更(下記のSmsMangerのドキュメントを参照)では、これらのメッセージはまだ送信されていますが、自動的にSMSプロバイダに書き込まれ、ユーザーの会話リストに表示されます。これは私のアプリにとっては望ましくないことです。

Android 4.4(APIレベル19)から、デフォルトのSMSアプリとして選択されていない場合にのみ、このメソッドを使用して送信されたメッセージがSMSプロバイダに自動的に書き込まれます常に送信されたメッセージをSMSプロバイダに書き込む責任があります)。既定のSMSアプリケーションとして動作する方法については、「テレフォニー」を参照してください。

私のアプリをデフォルトにしてプロバイダに書き込まないことで、プロバイダへの自動書き込みを防止できるように思えます。しかし、これは私のアプリのコンテキストではひどいユーザーエクスペリエンスなので、私はそれを絶対最後の手段とみなします。

私の質問はそれからである - 静かへの道は、デフォルトのアプリであることを持っずに私のアプリをキットカットでSMSを送信ありますか?

私はこの質問Send SMS message using non default SMS app on Android 4.4の回答を読んだが、これはメッセージがプロバイダに書き込まれていることを確認することにもっと関係している。私はそれを望んでいない。

答えて

0

短い答えはノーです。

長い答え:

が実際のオプションがありますが、それは多くの作業を必要とします。 1つは、aospのソースコードをダウンロードしてmms.apkを変更して、アプリケーションからインテントを受け取ってプロバイダに書き込まずにSMSを送信できるようにすることです。

もう1つの方法は、携帯電話のデフォルトSMSアプリケーションを作成し、上記と同じようにすることができるsmaliコードを追加することです。これには、apaliの解読と再コンパイルの技術的知識が必要です。

これは、電話ユーザーがショートメッセージングのニーズに第三者のsms/mmsアプリケーションを使用することを決定した場合などに発生する問題があります。

関連する問題