检测 "Bluetooth scanning" for location 是否开启

Detect if "Bluetooth scanning" for location is turned on

自 AndroidM 起,如果您在位置设置(见屏幕截图)。

为了扫描 BLE 设备,必须满足以下条件:

以及以下其中一项:

我可以检查是否已授予权限,并且位置选择器的状态很好。我没能做到的是弄清楚 如何检查 Bluetooth Scanning 选项的状态?

非常感谢任何见解!

经过多方查找,终于找到了知道状态的方法:

try {
    ContentResolver resolver = getApplicationContext().getContentResolver();
    int result = Settings.Global.getInt(resolver,"ble_scan_always_enabled");
    if(result == 1) {
        // Bluetooth scanning is on
    } else {
        // Bluetooth scanning is off
    }
} catch(SettingNotFoundException e) {
    // Settings doesn't exist, on Android < 6
}

您也可以使用"wifi_scan_always_enabled"获取wifi扫描状态。 它不需要任何权限。

如果我找到将用户重定向到屏幕或禁用它的方法,我会更新此 post。