地理围栏待定意图 returns

geofence pending intent returns

我希望向我的应用程序添加功能,允许我使用触发地理围栏的 ID 来 select 来自数组的相应样本 (url),然后可以将其传递给用于流媒体的 exoplayer。

目前我正在关注地理围栏 api,它使用挂起的意图连接到 intentservice 来管理地理围栏转换等。

查看主要 activity 中设置的未决意图,我可以在转换时向 return 地理围栏 ID 请求它吗? 我对 android 和这个 api 都很陌生,所以非常感谢任何帮助! 非常感谢!

如果我正确理解了您的问题(我可能没有正确理解),那么在发生转换事件时应该已经返回地理围栏 ID。

解释文档,当您的 PendingIntent 被触发时:

You can call GeofencingEvent.fromIntent(Intent) to get the transition type, geofences that triggered this intent and the location that triggered the geofence transition.

从生成的 GeofencingEvent 对象中,您可以调用 getTriggeringGeofences() 来检索导致转换的 Geofence 的列表,然后对每个对象调用 getRequestId()检索 ID。

编辑 一些代码……这是未经测试的(因为我拒绝谈论测试地理围栏边界!),但我希望它能起作用。 我假设您已经有一个有效的 Geofence 设置并且它正在正确调用您的 IntentService。在您的 IntentService 中,您应该有一个 onHandleIntent 方法:

void onHandleIntent(Intent intent) {
    // retrieve the GeofencingEvent from the passed Intent
    GeofencingEvent ge = GeofencingEvent.fromIntent(intent);

    // get the Geofences that triggered it
    List<Geofence> fences = ge.getTriggeringGeofences();

    // checking there is only one fence (bad assumption!!!!), retrieve the request Id
    if (fences == null || fences.size() != 1) {
        return;
    }
    String fenceID = fences.get(0).getRequestId();

    // do something funky with it...
}

您应该调试或记录每一行以检查它是否正常工作。如果这不起作用或不是您所期望的,请告诉我。