startBluetoothDevicesDiscovery fail Location services are turned off 10016 in uni-app
startBluetoothDevicesDiscovery fail Location services are turned off 10016 in uni-app
| 项目信息 | 详细信息 |
|---|---|
| 产品分类 | uniapp/App |
| PC开发环境操作系统 | Windows |
| PC开发环境版本号 | win11 |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 4.76 |
| 手机系统 | Android |
| 手机系统版本号 | Android 14 |
| 手机机型 | pad |
| 页面类型 | vue |
| vue版本 | vue3 |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
操作步骤:
- 直接搜索蓝牙设备
预期结果:
- 出结果
实际结果:
- startBluetoothDevicesDiscovery:fail Location services are turned off 10016
bug描述:
- startBluetoothDevicesDiscovery:fail Location services are turned off 10016
- 明确开启定位了 还是提示未开启
- ble调试助手 没问题
更多关于startBluetoothDevicesDiscovery fail Location services are turned off 10016 in uni-app的实战教程也可以访问 https://www.itying.com/category-93-b0.html
4 回复
你好,请问这个问题有解决了吗,我也是出现了这个问题
更多关于startBluetoothDevicesDiscovery fail Location services are turned off 10016 in uni-app的实战教程也可以访问 https://www.itying.com/category-93-b0.html
把hbuderx 降级到4.65的版本 没有这个问题 但是出现了新的问题 什么设备都搜索不到了
确实这bug真恶心,以前用的好好的,现在设备都搜不到了!这官方一点都不管,服了
这个错误是由于Android系统要求蓝牙扫描必须开启定位权限导致的。虽然你已手动开启定位,但可能缺少以下关键配置:
-
权限配置检查:
- 在
manifest.json中确保已添加定位权限:
"permissions": { "android": { "permissions": [ "android.permission.ACCESS_FINE_LOCATION", "android.permission.ACCESS_COARSE_LOCATION" ] } } - 在
-
动态权限申请:
- 在调用
startBluetoothDevicesDiscovery前,先通过uni.authorize申请定位权限:
uni.authorize({ scope: 'scope.location', success: () => { uni.startBluetoothDevicesDiscovery(...) } }) - 在调用
-
Android高版本适配:
- Android 12+ 需要额外声明
BLUETOOTH_SCAN权限,但uni-app目前未完全适配,可尝试在原生配置中补充。
- Android 12+ 需要额外声明
-
定位服务开关检测:
- 调用前检查系统定位是否真正开启:
uni.getSystemSetting({ success: (res) => { if (!res.locationEnabled) { uni.showModal({ content: "请到系统设置中开启定位服务" }) } } })

