【问题标题】:How to programmatically check Android "Location Consent"?如何以编程方式检查 Android“位置同意”?
【发布时间】:2014-05-13 00:09:43
【问题描述】:

我想以编程方式确定用户是否同意或不同意您在 Android 设备上打开 GPS 时出现的“位置同意”对话框。

我无法找到从哪里获取此信息,并且我不确定它是否实际上在代码中的任何位置都可用?

谢谢!

【问题讨论】:

    标签: android permissions gps location


    【解决方案1】:

    这是关于定位模式的。如果用户同意“定位同意”,定位模式设置为高精度。

    要检查此模式,您可以使用以下代码:

        public static boolean checkLocationSettings(Context context) {
    
        int locationMode = 0;
        String locationProviders;
    
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){
            try {
                locationMode = Settings.Secure.getInt(context.getContentResolver(), Settings.Secure.LOCATION_MODE);
    
            } catch (SettingNotFoundException e) {
                e.printStackTrace();
            }
    
            return (locationMode != Settings.Secure.LOCATION_MODE_OFF && locationMode == Settings.Secure.LOCATION_MODE_HIGH_ACCURACY); //check location mode
    
        }else{
            locationProviders = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
            return !TextUtils.isEmpty(locationProviders);
        }
    
    
    }
    

    【讨论】:

      【解决方案2】:

      检查较新的 gms.location.SettingsApi。您构建一个 LocationRequest 并询问当前系统设置是否兼容,并根据需要处理结果。

      https://developer.android.com/reference/com/google/android/gms/location/SettingsApi.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-04-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-06
        • 1970-01-01
        相关资源
        最近更新 更多