2

私は2つのアプリケーションA1とB1を持っています。A1にはブロードキャストレシーバーがあり、B1からこのブロードキャストレシーバーを登録したいので、試しました

Intent intent = new Intent();
intent.setClassName("pkgname","pkgname.BroadCastReceiverName");
intent.setAction("xxx.x...xxx");
getApplicationContext().sendBroadcast(intent);

ただし、受信者は起動/登録しません。

あるアプリケーションのブロードキャストレシーバーに別のアプリケーションでアクセスする方法は?

前もって感謝します

4

4 に答える 4

0

application-B1 の broadcastReceiver は、application-A1 からブロードキャストする適切なインテント フィルターを使用して AndroidManifest.xml ファイルに登録する必要があります。

于 2013-05-15T10:25:05.937 に答える
0

アプリ A1 のアクティビティ (Activity1 など) でメソッド (たとえば、register()) を作成し、それにいくつかのコードを追加して、それが brodcastreceiver であることを登録できIntentます。例regActivity1 の onCreate() で register() を呼び出します。ここで、ブロードキャストレシーバーを登録する場合は、アプリ B1 から Activity1 を開始するだけで十分です。そのインテントには、その特定のキーを追加したものがあります。たとえば、reg.

于 2013-05-15T10:34:11.110 に答える
0

このようなリフレクションを使用する場合は、最初に必ずエラー チェックを行います。これは、必要なパッケージとレシーバーがユーザーの電話で利用できない可能性があるためです。上記の方法は動作するはずですが、動作する前にいくつかの前提条件を設定する必要があります:アプリケーションは、ユーザーによって一度リストで実行されます。これはAndroid 4.x以降のケースだと思いますが、古いバージョンでも同じである可能性があります(これが変更された正確なバージョンを誰かが知っている場合は追加してください)

于 2013-05-15T10:26:17.573 に答える