isProviderEnabled(LocationManager.NETWORK_PROVIDER) return false

shell picture shell · Apr 14, 2012 · Viewed 13k times · Source

I am using NETWORK_PROVIDER to get latitude and longitude of the place.

I'v already check the setting in the "location & security" and enable "use wireless networks". But "isProviderEnabled(LocationManager.NETWORK_PROVIDER)" always return false.

Can anyone help me? Thank you in advance!

Here is my code :

LocationManager locManager=(LocationManager) getSystemService(Context.LOCATION_SERVICE);
boolean isEnableGPS=locManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
boolean isEnableNTW=locManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
Log.d(TAG, isEnableGPS+", "+isEnableNTW);

permission in the AndroidMainfest.xml

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

Answer

Jeremy Edwards picture Jeremy Edwards · Apr 14, 2013

Make sure that network based location is enabled in the phone's settings. You can detect this situation and prompt the user to enable it if you really need it.

I believe this is the line of code to launch this activity.

activity.startActivity(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);

ACTION_LOCATION_SOURCE_SETTINGS

This article explains it http://emobiledude.com/fix-waiting-for-location-in-google-maps-after-android-4-2-update/

Android 4.0 Location Access Settings