Question

I'm using my Nexus5 to get the current location (I'm indoor).

// getting GPS status
isGPSEnabled = locationManager
        .isProviderEnabled(LocationManager.GPS_PROVIDER);

// getting network status
isNetworkEnabled = locationManager
        .isProviderEnabled(LocationManager.NETWORK_PROVIDER);

if (!isGPSEnabled && !isNetworkEnabled) {
    // no network provider is enabled
    Log.e(MyLogger.TAG, "Non providers are enabled");

I have wifi and mobile data.

I have a valid sim inside this device

and yet both isGPSEnabled and isNetworkEnabled are false.

why is that?

Network provider should be available, no?

my manifest permissions:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.example.manyexampleapp.gcm.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

btw, do i need

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

if i already ask for:

 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Was it helpful?

Solution

below code return true when you enable the location by network provider option in the settings.

settings/Location/Network provider.

 isNetworkEnabled = locationManager
            .isProviderEnabled(LocationManager.NETWORK_PROVIDER); 
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top