1

我正在尝试做的事情:

由于LOCATION_PROVIDERS_ALLOWED在 19 级已贬值API,因此我尝试使用LOCATION_MODE来获取用户API在 19 级以上启用的位置访问程度,如下所示:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
    int locationMode;
    try {
        locationMode = Settings.Secure.getInt(context.getContentResolver(), Settings.Secure.LOCATION_MODE);

        // Check if Location services in ON and if YES then make sure its in either HIGH_ACCURACY or POWER_SAVING mode (Not in GPS_ONLY)
        switch (locationMode) {
            case Settings.Secure.LOCATION_MODE_OFF:
            //....
            break;

            case Settings.Secure.LOCATION_MODE_SENSORS_ONLY:
            //....
            break;

            //....
        }
    } catch (SettingNotFoundException e) {
        e.printStackTrace();
    }
}

问题:

现在,对于LOCATION_MODE,文档提到

注意:不要依赖于存在于相应 Uri 的通知中settings.db或通知中的此值。ContentObserver

据我了解,这意味着它使用起来不可靠LOCATION_MODE。那么对于API> 19,还有什么建议用于了解用户对应用程序允许的位置访问范围?

4

0 回答 0