0

Android4.2 Broadcastについていくつか質問がありますが、

android.intent.action.TIME_TICK

android.intent.action.PACKAGE_INSTALL

この 2 つの保護されたブロードキャストは、/frameworks/base/core/res/AndroidManifest.xml で定義されています。

レシーバーの使用を登録する場所のみを検索しContext.registerRecriver()

質問: android.intent.action.TIME_TICKに添付されたこのブロードキャストの送信先

ありがとう

4

2 に答える 2

1

マニフェスト ファイルで宣言するだけでは十分ではありません。マニフェスト ファイルは青写真のようなものです。そこでブロードキャスト レシーバーを宣言する必要があります。その後、コードにブロードキャスト レシーバーを登録する必要があります。サンプルのブロードキャスト レシーバー コードを添付します。

 batteryLevelFilter= new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
    this.registerReceiver(batteryLevelReceiver, batteryLevelFilter);
BroadcastReceiver batteryLevelReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
                  //yourcode

            }
};
于 2017-01-24T06:26:58.613 に答える
0

Context.registerReceiver() で明示的に登録するだけで、マニフェストで宣言されたコンポーネントを介してこれを受け取ることはできません。

そして、それはシステムによってのみ送信されます。

このインテントをプログラムで登録する必要があります: 毎分送信されます。

このような

IntentFilter if = new IntentFilter(Intent.ACTION_TIME_TICK);
registerReceiver(YourReceiver, if);
于 2017-01-10T09:54:53.547 に答える