.isProviderEnabled(LocationManager.NETWORK_PROVIDER) 在 Android 中始终为真
Posted
技术标签:
【中文标题】.isProviderEnabled(LocationManager.NETWORK_PROVIDER) 在 Android 中始终为真【英文标题】:.isProviderEnabled(LocationManager.NETWORK_PROVIDER) is always true in Android 【发布时间】:2015-03-16 02:56:33 【问题描述】:我不知道为什么,但我的变量 isNetowrkEnabled
总是返回 true。我的设备上的互联网是否启用并不重要。
这是我的GPSTracker
班级:
public class GPSTracker extends Service implements LocationListener
private final Context mContext;
boolean isNetworkEnabled = false;
boolean canGetLocation = false;
Location location; // location
protected LocationManager locationManager;
public GPSTracker(Context context)
this.mContext = context;
getLocation();
public Location getLocation()
locationManager = (LocationManager) mContext
.getSystemService(LOCATION_SERVICE);
isNetworkEnabled = locationManager
.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (!isGPSEnabled && !isNetworkEnabled)
// no network provider is enabled
else
this.canGetLocation = true;
if (isNetworkEnabled)
System.out.println("Network enabled");
else
System.out.println("Network disabled");
你知道这段代码有什么问题吗?
【问题讨论】:
【参考方案1】:您的代码很可能没有任何问题。是否启用提供程序取决于设置应用程序的位置部分(或设备制造商在其他地方提供的等效控件,例如在应用程序小部件中)。只要未在“设置”中禁用网络提供商,isProviderEnabled(LocationManager.NETWORK_PROVIDER)
就会返回true
。 启用的提供程序与提供程序是否工作没有任何关系,因为您没有网络连接。
【讨论】:
我认为如果我在我的设备上禁用 wi-fi 和移动数据就足够了,但事实上我必须在定位服务中这样做。谢谢:)【参考方案2】:试试这个..
ConnectivityManager cm = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnected())
return true;
else
return false;
【讨论】:
以上是关于.isProviderEnabled(LocationManager.NETWORK_PROVIDER) 在 Android 中始终为真的主要内容,如果未能解决你的问题,请参考以下文章
.isProviderEnabled(LocationManager.NETWORK_PROVIDER) 在 Android 中始终为真
当 gps 关闭时,.isProviderEnabled(LocationManager.NETWORK_PROVIDER) 总是返回 false?
locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER) 使用 Wi-Fi 总是返回 false
isProviderEnabled()永远不会被称为android
Android google maps v2 isproviderEnabled(LocationManager.NETWORK_PROVIDER,0,0,this) 总是返回 false
Eclipse 报错The method xxx of type must override a superclass methodDescription Resource Path Locati