我正在使用Nexus5获取当前位置(我在室内)。

// 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");


我有wifi和移动数据。

我在此设备内有一个有效的SIM卡

isGPSEnabledisNetworkEnabled均为假。

这是为什么?

网络提供商应该可用,不是吗?

我的清单权限:

<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" />


顺便说一句,我需要吗

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


如果我已经要求:

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

最佳答案

当您在设置中启用“按网络提供商定位”选项时,以下代码返回true。

设置/位置/网络提供商。

 isNetworkEnabled = locationManager
            .isProviderEnabled(LocationManager.NETWORK_PROVIDER);

07-24 12:28