#bluetooth-lowenergy
#bluetooth-lowenergy
Вопрос:
Когда для targetsdkversion установлено значение 28, поиск устройств ble может выполняться в обычном режиме.
Но я не могу найти устройства ble, когда для targetsdkversion установлено значение 29.
<uses-feature android:name="android.permission.BLUETOOTH_ADMIN" android:required="false"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:required="false"/>
<uses-permission android:name="android.permission.BLUETOOTH" android:required="false"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" android:required="false"/>
<uses-permission android:name="andriod.permission.ACCESS_FINE_LOCATION" android:required="false"/>
Мой код выглядит следующим образом
bluetoothAdapter.getBluetoothLeScanner().startScan(buildScanFilters(), buildScanSettings(), new ScanCallback() {
@Override
public void onScanResult(int callbackType, ScanResult result) {
super.onScanResult(callbackType, result);
}
@Override
public void onBatchScanResults(List<ScanResult> results) {
super.onBatchScanResults(results);
}
@Override
public void onScanFailed(int errorCode) {
super.onScanFailed(errorCode);
}
});
Ответ №1:
Вы также запрашиваете разрешения во время выполнения? Специально для точного определения местоположения?
Из https://developer.android.com/about/versions/10/privacy/changes#location-telephony-bluetooth-wifi:
Примечание: Если ваше приложение работает на Android 10 или выше, но нацелено на Android 9 (уровень API 28) или ниже, вы можете использовать затронутые API (за исключением API WifiP2pManager), если в вашем приложении указано разрешение ACCESS_COARSE_LOCATION или ACCESS_FINE_LOCATION.
Возможно, это тот случай, с которым вы столкнулись, как и раньше, было нормально иметь только грубое местоположение.
Кроме того, не уверен, что это просто ошибка копирования / вставки, но в вашем коде есть опечатка в <uses-permission android:name="andriod.permission.ACCESS_FINE_LOCATION" android:required="false"/>
строке —> «andriod».
В качестве альтернативы, может быть, попробовать API-интерфейс сопутствующего устройства?
https://developer.android.com/guide/topics/connectivity/companion-device-pairing