我想知道是否有方法可以判断是否有人(不一定是我的应用程序)调用了requestLocationUpdates。我正在写一个监控位置的服务,但我不想干扰其他可能监控位置的应用程序(例如Waze,Endomondo)。我在LocationManager对象中看不到任何可以告诉我是否有未完成的位置更新请求的API。有什么想法吗?
发布于 2013-05-10 03:41:54
>= 8接口为是,您可以通过调用以下方法来查看应用程序是否调用了requestLocationUpdates
requestLocationUpdates(LocationManager.PASSIVE_PROVIDER, minTime, minDist, listener); 官方文件
公共静态最终字符串PASSIVE_PROVIDER
在API级别8中添加
一种特殊的位置提供程序,用于接收位置而不实际启动位置确定。
此提供程序可用于在其他应用程序或服务请求位置更新时被动地接收位置更新,而无需自己实际请求位置。此提供程序将返回由其他提供程序生成的位置。您可以查询getProvider()方法来确定位置更新的来源。需要权限ACCESS_FINE_LOCATION,但如果未启用GPS,此提供程序可能只返回粗略修复。
常量值:“被动式”
在某个应用程序请求修复之前,不会调用onLocationChanged。
发布于 2013-05-14 21:40:03
除了间接通过PASSIVE_PROVIDER,您无法确定其他应用程序正在对位置更新做什么。
https://stackoverflow.com/questions/16466491
复制相似问题