我正在创建一个蓝牙扫描仪应用程序,并试图找到可用的设备进行配对。我有一个蓝牙耳机,我正试图找到它在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"/>
应用程序包含一个简单的按钮,点击它我开始发现蓝牙设备
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))
}
}
如果我在这里遗漏了什么,有人能帮我吗?
设备上的位置是否已关闭?Android 10必须启用位置才能获得扫描结果。
还记得请求许可
if (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION)) {
requestPermissions(new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION}, PERM);
}