Problem requesting location updates by network

2019-04-26 19:47发布

问题:

I've created a Service and grabs location data about the user so I can show my users nearby places. I want this Service to track by network in addition to GPS for 2 reasons: 1) GPS may not be enabled. 2) GPS takes quite a bit of time to lock on with my test phone.

When my Service executes the following line:

mNETEnabled = mLocationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);

I get the following error:

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)

Why is this? Am I missing a permission from the Manifest? I have ACCESS_COARSE_LOCATION in my manifest.

回答1:

are you running on emulator at api level 13 or greater? Android issue 19857



回答2:

Use wireless networks setting in Security & location preference settings. Is it enabled?



回答3:

Could be that the Moment doesn't have AGPS (which would be weird). But you can check with using LocationManager.getAllProviders() and see which ones come back. You could also just use LocationManager.getBestProvider (Criteria criteria, boolean enabledOnly)'.