如果用户已通过网络启用了位置,请获取

时间:2013-12-13 08:54:27

标签: android location

某些设备(或可能全部)允许用户使用网络(wifi或数据)隐藏其位置。 如何知道此设置是启用还是禁用?

我需要通过gps(如果已启用)或通过wifi或数据网络获取当前用户位置。

2 个答案:

答案 0 :(得分:1)

LocationManager保存这些信息:

LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
boolean isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
boolean isNetworkdEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);

答案 1 :(得分:0)

我正在使用以下代码检查用户是否启用了位置gps或网络提供程序:

private static LocationManager sLocationManager =
    (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);

public static boolean isLocationProviderEnabled() {
    if (sLocationManager != null) {
        boolean gpsEnabled = false;
        boolean networkEnabled = false;

        try {
            gpsEnabled = sLocationManager
                    .isProviderEnabled(LocationManager.GPS_PROVIDER);
            networkEnabled = sLocationManager
                    .isProviderEnabled(LocationManager.NETWORK_PROVIDER);

            if (gpsEnabled || networkEnabled) {
                return true;
            }
        } catch (Exception e) {
        }
    }

    return false;
}