我正在使用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卡
而
isGPSEnabled
和isNetworkEnabled
均为假。这是为什么?
网络提供商应该可用,不是吗?
我的清单权限:
<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);