1

我正在开发一个基于位置的谷歌眼镜应用程序,该应用程序提供检测用户位置的详细信息。我希望我的应用程序仅在用户处于某个位置而没有他/她的输入时自动启动。

例如,谷歌眼镜用户想要乘坐地铁。该应用程序应在用户进入地铁站后立即自动启动,并为他/她提供必要的详细信息(如谷歌现在卡弹出)。

无论如何这可以实现吗?

4

1 回答 1

2

您可以使用LocationManager并使用 addProximityAlert来执行此操作,它为位置(纬度、经度)和给定半径给定的位置设置接近警报。

addProximityAlert - 来自 developer.android.com:

public void addProximityAlert(双纬度,双经度,浮动半径,长期过期,PendingIntent 意图)

在 API 级别 1 中添加 为由位置(纬度、经度)和给定半径给出的位置设置接近警报。

当设备检测到它已进入或离开该位置周围的区域时,给定的 PendingIntent 将用于创建要触发的 Intent。

触发的 Intent 将添加一个带有键 KEY_PROXIMITY_ENTERING 的布尔值。如果该值为 true,则设备正在进入邻近区域;如果为假,则退出。

由于位置估计的近似性质,如果设备短暂地通过给定区域,则可能不会触发任何 Intent。同样,如果设备非常接近给定区域但实际上并未进入该区域,则可能会触发 Intent。

在过期参数给定的毫秒数后,位置管理器将删除此接近警报,不再对其进行监控。值 -1 表示不应有过期时间。

在内部,此方法同时使用 NETWORK_PROVIDER 和 GPS_PROVIDER。

在 API 版本 17 之前,此方法可以与 ACCESS_FINE_LOCATION 或 ACCESS_COARSE_LOCATION 一起使用。从 API 版本 17 起,此方法需要 ACCESS_FINE_LOCATION 权限。

参数 latitude 警报区域中心点的纬度 longitude 警报区域中心点的经度 radius 警报区域中心点的半径,以米为单位 此接近警报的过期时间,以毫秒为单位,或 -1表示没有过期意图一个 PendingIntent 将用于在检测到进入或退出警报区域时生成一个要触发的 Intent

如果 ACCESS_FINE_LOCATION 权限不存在,则抛出 SecurityException

于 2014-06-10T21:12:21.560 回答