我已经创建了一个服务并抓取了有关用户的位置数据,因此我可以在附近的地方显示我的用户。我希望此服务除了GPS之外还可以通过网络进行跟踪,原因有两个:1)GPS可能无法启用。 2)GPS需要相当多的时间来锁定我的测试手机。
当我的服务执行以下行时:
mNETEnabled = mLocationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
我收到以下错误:
11-24 14:00:41.693: ERROR/LocationManagerService(51): isProviderEnabled got exception:
11-24 14:00:41.693: ERROR/LocationManagerService(51): java.lang.IllegalArgumentException: provider=network
11-24 14:00:41.693: ERROR/LocationManagerService(51): at com.android.server.LocationManagerService._isProviderEnabledLocked(LocationManagerService.java:1385)
11-24 14:00:41.693: ERROR/LocationManagerService(51): at com.android.server.LocationManagerService.isProviderEnabled(LocationManagerService.java:1359)
这是为什么?我是否错过了Manifest的许可?我的清单中有ACCESS_COARSE_LOCATION。
答案 0 :(得分:14)
你是在api 13级或更高级别的模拟器上运行的吗? Android issue 19857
答案 1 :(得分:2)
Use wireless networks
偏好设置中设置 Security & location
。是否已启用?
答案 2 :(得分:0)
可能是片刻没有AGPS(这会很奇怪)。但是您可以使用LocationManager.getAllProviders()
进行检查,看看哪些回来了。您也可以使用LocationManager.getBestProvider (Criteria criteria, boolean enabledOnly)'
。