Сканер Bluetooth не обнаруживает устройства

#android #bluetooth #bluetoothlescanner

#Android #bluetooth #блютутлесканнер

Вопрос:

Я создаю приложение для сканирования Bluetooth и пытаюсь найти доступные устройства для сопряжения. У меня есть Bluetooth-гарнитура, которую я пытаюсь найти, запустив приложение на Android 10.

Разрешения устанавливаются в манифесте

 <uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
 

Приложение содержит простую кнопку, по щелчку которой я запускаю обнаружение для устройства Bluetooth

 val bluetoothManager = getSystemService(Context.BLUETOOTH_SERVICE) as BluetoothManager
val bluetoothAdapter = bluetoothManager.adapter
if (bluetoothAdapter == null || !bluetoothAdapter.isEnabled) {
    val enableBtIntent = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE)
    startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT)
}
val bluetoothLeScanner = BluetoothAdapter.getDefaultAdapter().bluetoothLeScanner
scanBluettoth.setOnClickListener({
    bluetoothLeScanner.startScan(leScanCallback)
})
 

Обратный вызов для обнаружения

 val leScanCallback: ScanCallback = object : ScanCallback() {
    override fun onScanResult(callbackType: Int, result: ScanResult) {
        super.onScanResult(callbackType, result)
        Log.e("device ", "D ".plus(result.device.name))
    }
}
 

Может ли кто-нибудь помочь мне, если я чего-то здесь не понимаю?

Комментарии:

1. Есть ли у вас разрешение на разрешенное местоположение?? из Настройки

Ответ №1:

Отключено ли местоположение на устройстве? Для получения результатов сканирования в Android 10 должно быть включено местоположение.

Также не забудьте также запросить разрешение

 if (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION)) {
   requestPermissions(new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION}, PERM);
}