isNetworkEnabled == false 在室内时即使我有 wifi 和移动数据

Posted

技术标签:

【中文标题】isNetworkEnabled == false 在室内时即使我有 wifi 和移动数据【英文标题】:isNetworkEnabled == false when indoor even if i have wifi and mobile data 【发布时间】:2014-04-27 06:28:37 【问题描述】:

我正在使用 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" />

【问题讨论】:

【参考方案1】:

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

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

 isNetworkEnabled = locationManager
            .isProviderEnabled(LocationManager.NETWORK_PROVIDER); 

【讨论】:

我是否需要 如果我已经要求: 如果您指定了第二个权限,则不需要第一个权限。

以上是关于isNetworkEnabled == false 在室内时即使我有 wifi 和移动数据的主要内容,如果未能解决你的问题,请参考以下文章