isProviderEnabled始终为网络提供程序返回true

时间:2016-04-11 17:58:26

标签: android gps location locationmanager

您好我正在开发小型Android应用程序,我正在尝试检查是否启用了网络提供程序。如果没有,那么寻找GPS提供商。但在我的情况下,网络提供商总是返回true。我试图按照以下方式检查

    if (locManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);
getLastLocation(LocationManager.NETWORK_PROVIDER);

} else if (locManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0, this);
getLastLocation(LocationManager.GPS_PROVIDER);
}

在上面的代码网络提供程序中总是返回true。即使我没有任何网络提供商。我在做什么问题?需要一些帮助。谢谢。

1 个答案:

答案 0 :(得分:3)

要禁用网络位置,您必须将位置模式设置为关闭或仅限GPS。

因此,要使isProviderEnabled(LocationManager.NETWORK_PROVIDER)返回false,它将需要看起来像这样(完全禁用):

enter image description here

或者这个(启用位置,仅限GPS):

enter image description here

要查看KitKat的外观,请看这里: https://stackoverflow.com/a/30580898/4409409