我正在开发基于位置的Google Glass应用,它可以提供检测用户位置的详细信息。 我希望我的应用程序只有在用户没有他/她输入的情况下才能自动启动。
例如,谷歌眼镜用户想要乘坐地铁。一旦用户进入地铁站并且向他/她提供必要的详细信息(例如Google现在的卡片弹出),该应用程序应自动启动。
无论如何这可以实现吗?
答案 0 :(得分:2)
您可以使用LocationManager并使用 addProximityAlert为位置(纬度,经度)和给定半径给出的位置设置接近警报。
addProximityAlert - 来自developer.android.com:
public void addProximityAlert(double latitude,double longitude,float radius,long expiration,PendingIntent intent)
在API级别1中添加 为位置(纬度,经度)和给定半径给出的位置设置接近警报。
当设备检测到它已进入或退出该位置周围的区域时,将使用给定的PendingIntent创建要触发的Intent。
触发的Intent将使用键KEY_PROXIMITY_ENTERING添加一个布尔额外值。如果值为true,则设备进入邻近区域;如果错误,它就会退出。
由于位置估计的近似性质,如果设备短暂地通过给定区域,则可能不会触发任何意图。类似地,如果设备非常接近给定区域但实际上没有进入,则可以触发Intent。
在到期参数给出的毫秒数之后,位置管理器将删除此近程警报并且不再监视它。值-1表示不应有到期时间。
在内部,此方法使用NETWORK_PROVIDER和GPS_PROVIDER。
在API版本17之前,此方法可以与ACCESS_FINE_LOCATION或ACCESS_COARSE_LOCATION一起使用。从API版本17及更高版本开始,此方法需要ACCESS_FINE_LOCATION权限。
参数 纬度纬度警报区域中心点的纬度 经度是警戒区域中心点的经度 半径警报区域中心点的半径,以米为单位 此接近警报的到期时间(以毫秒为单位)或-1表示没有到期时间 意图使用PendingIntent,用于在检测到进入或退出警报区域时生成要触发的意图
抛出 SecurityException如果不存在ACCESS_FINE_LOCATION权限