前言
前一阵帮别人做个蓝牙的Android程序,调试的好好的, 用的自己的老手机,android 5.1、8.0的都是好好的能够搜索,但是交付过去,对方的华为p30 Android 10手机就是不行,这是什么原因呢,一阵挠头。。
分析
如要查找 BLE 设备,请使用 startLeScan() 方法。此方法将 BluetoothAdapter.LeScanCallback 作为参数。您必须实现此回调,因为这是返回扫描结果的方式。
代码示例
如下为扫描代码。
/**
* Activity for scanning and displaying available BLE devices.
*/
public class DeviceScanActivity extends ListActivity {
private BluetoothAdapter bluetoothAdapter;
private boolean mScanning;
private Handler handler;
// Stops scanning after 10 seconds.
private static final long SCAN_PERIOD = 10000;
...
private void scanLeDevice(final boolean enable) {
if (enable) {
// Stops scanning after a pre-defined scan period.
handler.postDelayed(new Runnable() {
@Override
public void run() {

本文分析了Android 10手机在搜索BLE设备时遇到的问题,指出在Android 10上需要ACCESS_FINE_LOCATION权限。通过官方文档解析,了解到Android系统会根据targetSdkVersion自动调整权限。解决方案是降低targetSdkVersion,以确保兼容性并避免不必要的权限请求。
最低0.47元/天 解锁文章

1939

被折叠的 条评论
为什么被折叠?



