【问题标题】:Google Awareness Api events while app isn't running应用未运行时的 Google Awareness Api 事件
【发布时间】:2016-09-13 21:49:01
【问题描述】:

我希望在 Google Awareness API“栅栏”触发时启动 BroadcastReceiver 或 IntentService(取决于我的最终处理需要多长时间)。例如,也许我想知道我在一天中激活了多少次信标围栏(假设我随身携带手机)。我发现的所有示例都显示了在代码中注册广播接收器,但我的理解是,如果我的应用程序没有运行,我需要在清单中注册一个广播接收器,以便操作系统向它发送广播。更重要的是,intent ID 似乎是一个自定义的,所以我猜我必须通过代码至少向操作系统注册一次?

我猜我将不得不创建一个或多个测试应用程序来通过反复试验来解决这个问题,但如果有人尝试过这个并愿意分享您的结果,我将非常感激!

【问题讨论】:

  • 您的问题是什么?你能说得更具体点吗?

标签: android broadcastreceiver google-awareness


【解决方案1】:

只要在 Manifest 文件中指定 BroadCastReceiver 就足够了。

即使在声明了 Manifest <receiver> 条目之后,也不必在代码中注册它。想想平台如何处理你只在 Manifest 文件中注册它的活动(如果没有我们得到 ActivityNotFoundException),就像广播也可以只在 Manifest 文件中注册一样。

你需要像这样声明接收者:

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

扩展 BroadcastReceiver 类。

public class MyFenceReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    FenceState fenceState = FenceState.extract(intent);

    if (TextUtils.equals(fenceState.getFenceKey(), "geofence")) {
        switch(fenceState.getCurrentState()) {
            case FenceState.TRUE:

                break;
            case FenceState.FALSE:

                break;
            case FenceState.UNKNOWN:

                break;
        }
    }
}
}

更多信息https://developer.android.com/guide/topics/manifest/receiver-element.html

【讨论】:

  • 对,我做到了。奖励努力的赏金!我仍然坚持以持久的方式注册围栏。我最近没有太多时间来处理它,但我的最后一次测试表明,接收器只会被呼叫几次,然后它就会停止。接收者所做的只是弹出一个祝酒词。接下来我将尝试使用日志文件。
  • 这是拦截警告事件的正确意图过滤器吗?应用程序关闭时我没有收到事件...
  • @ZivKesten 当应用程序未运行时您没有收到事件???这意味着当您的应用程序正常运行时,您会收到它们。因此,这与您注册广播的方式有关。我猜您没有在 Manifest 文件中注册它,而是在代码中注册它,并且您使用的是 Activity 上下文而不是 Application 上下文。一些代码示例将有助于更好地理解您的场景。
  • 我确实把它写在了清单中,我认为全局接收器不需要写在其他任何地方,这就是为什么我认为我可能误解了意图过滤器。
  • 我已将接收器完全放入清单中: 并没有在代码中注册
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多