1. 程式人生 > >LE gatt 第三方應用無法搜尋到藍芽低功耗裝置

LE gatt 第三方應用無法搜尋到藍芽低功耗裝置

手機端修改packages/apps/Bluetooth/res/values/config.xml檔案中strict_location_check的值由true改為false,使用者
在進行掃描LE裝置時則可以返回給APP。從而不需要使用者強制開啟GPS。
packages/apps/Bluetooth/src/com/android/bluetooth/gatt/GattService.java
    /** Determines if the given scan client has the appropriate permissions to receive callbacks. */
    private boolean hasScanResultPermission(final ScanClient client) {
        final boolean requiresLocationEnabled =
                getResources().getBoolean(R.bool.strict_location_check);
        final boolean locationEnabledSetting = Settings.Secure.getInt(getContentResolver(),
                Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF)
                != Settings.Secure.LOCATION_MODE_OFF;
        final boolean locationEnabled = !requiresLocationEnabled || locationEnabledSetting
                || client.legacyForegroundApp;
        return (client.hasPeersMacAddressPermission
                || (client.hasLocationPermission && locationEnabled));
    }