2013-08-08 10 views
5

私はプライベートブロードキャストを作成できるかどうか疑問に思っています。 私は実際に私の活動にbroadcastreceiver登録し、ブロードキャストを送信するために自分のAndroidアプリにブロードキャストを制限する方法

sendOrderedBroadcast(broadcast); 

メソッドを使用します。 しかし、今のところ、この方法に使用目的(ブロードキャスト)はこのように定義されています

Intent broadcast = new Intent("com.mypackage.broadcast"); 

ので、このパッケージの名前を宣言し、すべての外部アプリケーションは、私が送信しています何聞くことができる、と私はしたくありません。

どのようにこれを不可能にするために、誰も私の放送を聞くことができないのですか?

答えて

6

私はあなたがLocalBroadcast Managerを探していると思います。ドキュメントは次のように言っています:

あなたのプロセス内のローカルオブジェクトに登録してインテントのブロードキャストを送信するヘルパーです。これには、sendBroadcast(Intent)を使用してグローバルブロードキャストを送信することよりも多くの利点があります。そのうちの一つは、あなたがあなたのアプリを残していないが放送されているデータは、それほど多くのためhow to use LocalBroadcastManager?を参照してください。プライベートdata.`に

漏れを心配する必要がないことです。それがあなたを助けることを願っている。

+0

うわー、それはすばやく、ありがとう、実際には正しいキーワードで検索していなかった。もう一度おねがいします@Shobhit Puri、それは私が探していたものでした。 – Bibu

+0

喜んでそれは助け:) –

1

LocalBroadcast Managerを動作させるには、アプリが動作している必要があります。

Androidブロードキャストを自分のアプリに限定するための一般的な戦略を設定するには、次のようにします。アプリケーションパッケージは、Android上のすべてのアプリケーションのためのユニークなままになりますので

Intent intent = new Intent(); 
String packageName = context.getApplicationContext().getPackageName(); 
intent.setAction(packageName + "<MY_ACTION>"); 
context.sendBroadcast(intent); 

が、これは安全にあなた自身のアプリにブロードキャストを制限すると、あなたはのAndroidManifest.xmlでBroadcastReceiversを登録することができます。

関連する問題