2012-01-28 3 views
0

私は特定のSMSを見て、それが到着したときに受信機で処理したいと思っています。私はそれが上向きに泡立ち、ユーザに表示されないように "食べたい"(それは "静かに"扱われるべきです)。これは可能ですか?もしそうなら、どうですか?インテントが進行する(インテントを「食べる」)のを防ぐことはできますか?

+0

**あなたがあなたの質問をよりよく/より簡単に理解できるように、あなたはアンドロイド用語を学ぶべきです** ** 私が正しく理解するならば、あなたはそれが到着したときにそのメッセージを "それはデータベースからのものなので、通知として表示されません。これは正しいです? – JoxTraex

+0

はい、探している基準(つまり、自分のアプリに属している)と一致する場合、ユーザーにメッセージを表示させたくありません。もちろん、それが私のアプリによって傍受されないならば、私は "それを上に上げて渡したい"と思っています。 –

答えて

4

これは可能ですか?もしそうなら、どうですか?

SMS放送が注文した放送であることを起こるので、あなたのBroadcastReceiverは、優先度の低い受信機によって処理されてからそれを停止するabortBroadcast()を呼び出すことができます。

Here is a blog post順番に放送を議論しています。 Here is a sample projectそのブログ投稿に基づいています。 Here is a sample SMS BroadcastReceiverは条件付きでabortBroadcast()を実行します。

1
I then want to "eat it" so that it doesn't bubble upwards and display to the user (it should be handled "silently") 

hh? を受け取るために登録する意図は、が黙ってに処理されている場合、を「大声で」処理することを選択しない限りです。

EDIT

はまた、SMSメッセージへの応答から他のアプリを防止するための方法はありません。あるアプリが他のアプリがシステムイベントを聞くことができるかどうかを制御するセキュリティの影響を考えてみましょう...

+0

でも、私が間違っていなければ、最初はSMSを見たにもかかわらず、通常はSMSがユーザーに見えるようになります。 –

1

あなたはAndroidのサービス構成を探しています。これはUI(アクティビティのような)を必要とせずに、何かを実行するように設計されています。

BroadcastReceiverは、SMSイベントをキャッチするために調査する必要がある追加機能です。

+0

私はサービスの使用を検討しましたが、BroadcastReceiverは私が使用しているものであり、ちょうどうまくいくはずです。 –

1

はい、abortBroadcast()メソッドで中断できます。IntentFilterの優先度を1000(最高優先度)に設定すると、この受信機はシステムの前にブロードキャストを受信します。

関連する問題