如果从设置中关闭该位置,请获取位置

时间:2015-07-29 04:58:45

标签: android geolocation location

我需要从Android设备获取lat / lng,但限制是我的设备位置已关闭设置,用户要求不打开该位置。

所以可以从设备获取lat / lng吗?

2 个答案:

答案 0 :(得分:0)

您必须使用LocationManager。

阅读Documentation

编辑: - 抱歉,据我所知,没有办法。通过道德手段无法获得用户不想要的位置。

答案 1 :(得分:0)

在位置关闭时调用此Intent

startActivityForResult(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS),110);

当您想要获取用户位置时,请调用此方法。

public boolean isLocationEnable() {
    LocationManager locationManager;
    if (locationManager == null)
        locationManager = (LocationManager) this
                .getSystemService(Context.LOCATION_SERVICE);
    boolean gps_enabled = false;
    try {
        gps_enabled = locationManager
                .isProviderEnabled(LocationManager.GPS_PROVIDER);
    } catch (Exception ex) {
    }
    boolean network_enabled = false;
    try {
        network_enabled = locationManager
                .isProviderEnabled(LocationManager.NETWORK_PROVIDER);
    } catch (Exception ex) {
    }

    if (!gps_enabled && !network_enabled) {
        Builder dialog = new AlertDialog.Builder(this);
        dialog.setMessage("Activate Location");
        dialog.setCancelable(false);
        dialog.setPositiveButton("Setting",
                new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(
                            DialogInterface paramDialogInterface,
                            int paramInt) {
                        // TODO Auto-generated method stub
                        startActivityForResult(
                                new Intent(
                                        android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS),
                                110);
                    }
                });
        dialog.setNegativeButton("Cancel",
                new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(
                            DialogInterface paramDialogInterface,
                            int paramInt) {
                    }
                });
        dialog.show();
        return false;
    } else {
        return true;
    }
}