1

我正在一个 android 应用程序中实现 google Awareness API,但没有任何示例或指南显示如何在应用程序关闭或后台时收听 api 事件。我根据这里的答案写了一个全局接收器

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

但是,由于它不起作用,我怀疑我不知道用于拦截 Awarness 事件的正确意图过滤器。有谁知道正确的意图过滤器,或者如果这不是我的问题,我如何在应用程序关闭或在后台使用全局接收器时拦截 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 回答