Сканер 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 ответ
Местоположение на устройстве отключено? Местоположение должно быть включено для Android 10, чтобы получить результаты сканирования.
Также не забудьте также спросить разрешения
if (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION)) {
requestPermissions(new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION}, PERM);
}