Почему версия Android для приложения требует разрешения COARSE LOCATION для доступа к Bluetooth? - PullRequest
0 голосов
/ 28 января 2019

Реактивное приложение, над которым я работаю, использует Bluetooth.В версии IOS единственное разрешение (я), требующее подтверждения пользователя, - tryToTriggerLEPairing.Однако в версии приложения для Android есть метод, который содержит следующее:

PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.ACCESS_COARSE_LOCATION)
        .then(granted => {
            if (granted === PermissionsAndroid.RESULTS.GRANTED || granted === true) {
                this.startScan();
                return;
            }
            return PermissionsAndroid.request(
                PermissionsAndroid.PERMISSIONS.ACCESS_COARSE_LOCATION, {
                    'title': I18n.t('permission_location_title'),
                    'message': I18n.t('permission_location_desc')
                }
            )
                .then(granted => {
                    if (granted === PermissionsAndroid.RESULTS.GRANTED || granted === true) {
                        this.startScan();
                    }
                })
        })
        .catch(error => {
            // TODO: error;
        });

Почему версия Android требует грубого расположения, а версия IOS - нет?

1 Ответ

0 голосов
/ 28 января 2019

Как вы можете прочитать в официальной документации

Примечание: LE Маяки часто связаны с местоположением.Чтобы использовать BluetoothLeScanner, вы должны запросить разрешение пользователя, объявив либо разрешение ACCESS_COARSE_LOCATION, либо ACCESS_FINE_LOCATION в файле манифеста вашего приложения.Без этих разрешений сканирование не даст никаких результатов.

...