1

Android アプリに Google Awareness API を実装していますが、サンプルもガイドも、アプリのダウン中またはバックグラウンドで API イベントをリッスンする方法を示していません。ここの回答に基づいてグローバルレシーバーを作成しました

    <receiver android:name=".MyFenceReceiver" >
   <intent-filter>
     <action android:name="android.intent.action.FENCE_RECEIVER_ACTION" />
    </intent-filter>
</receiver>

ただし、機能していないため、認識イベントを傍受するための正しいインテント フィルターがわからないのではないかと思います。誰かが正しいインテント フィルターを知っていますか、またはこれが私の問題でない場合、アプリがダウンしている間、またはグローバル レシーバーを使用してバックグラウンドで API イベントをインターセプトするにはどうすればよいですか?

4

1 に答える 1

5

最終的には、このレシーバーをマニフェストに登録し、次のように独自のインテント フィルターを指定する必要があるというのが答えでした。

   Intent intent = new Intent(Constants.Requests.FENCE_RECEIVER_ACTION);
                    mPendingIntent =
                            PendingIntent.getBroadcast(BaseActivity.this, 0, intent, 0);

                    // The broadcast receiver that will receive intents when a fence is triggered.

ここで、「FENCE_RECEIVER_ACTION」は次のとおりです。

// The intent action which will be fired when your fence is triggered.
    public final static String FENCE_RECEIVER_ACTION =
            BuildConfig.APPLICATION_ID + "FENCE_RECEIVER_ACTION";

マニフェストでは、次のようにレシーバーに入れます。

 <receiver android:name=".FenceReceiver" >
        <intent-filter>
            <action android:name="'YOUR_PACKGE_NAME_HERE'FENCE_RECEIVER_ACTION" />
        </intent-filter>
    </receiver>

どこでもレシーバーを登録解除する必要はありません。

于 2016-10-23T06:22:23.957 に答える