uni.startBluetoothDevicesDiscovery({
success(res) {
// console.log(res)
},
fail(err) {
console.log(err)
}
});
- 发布:2025-11-08 16:13
- 更新:2025-11-17 09:27
- 阅读:90
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: windows11
HBuilderX类型: Alpha
HBuilderX版本号: 4.83
手机系统: Android
手机系统版本号: Android 10
手机厂商: 杂牌扫码机
手机机型: EDA51
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
手机调试,调用方法后报错,位置和权限都已经开启
手机调试,调用方法后报错,位置和权限都已经开启
预期结果:
成功查询到蓝牙列表
成功查询到蓝牙列表
实际结果:
代码报错
{
"errMsg": "startBluetoothDevicesDiscovery:fail Location services are turned off",
"errCode": 10016,
"code": 10016
}
4.6之前的编译器云打包是可以的,升级了编译器之后,大部分机型都可以搜索到蓝牙,只有少部分机型会报错误
代码报错
{
"errMsg": "startBluetoothDevicesDiscovery:fail Location services are turned off",
"errCode": 10016,
"code": 10016
}
4.6之前的编译器云打包是可以的,升级了编译器之后,大部分机型都可以搜索到蓝牙,只有少部分机型会报错误
bug描述:
{
"errMsg": "startBluetoothDevicesDiscovery:fail Location services are turned off",
"errCode": 10016,
"code": 10016
}
9***@qq.com - uniapp前端开发
试试这个方法判断位置服务有没有打开
let systemType = uni.getSystemInfoSync().platform;
// 安卓
if (systemType === 'android') {
var context = plus.android.importClass('android.content.Context');
var locationManager = plus.android.importClass('android.location.LocationManager');
var main = plus.android.runtimeMainActivity();
var mainSvr = main.getSystemService(context.LOCATION_SERVICE);
if (!mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER)) {
uni.showModal({
title: '提示',
content: '搜索蓝牙设备需要开启定位服务功能',
showCancel: false,
confirmText: '去开启',
success() {
if (!mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER)) {
var Intent = plus.android.importClass('android.content.Intent');
var Settings = plus.android.importClass('android.provider.Settings');
var intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
main.startActivity(intent); // 打开系统设置定位服务功能页面
} else {
console.log('定位服务功能已开启');
}
}
});
return false
} else {
return true
}
}
hengsen
安卓手机要把定位打开才能搜索
2025-11-13 09:23
9***@qq.com
回复 hengsen: 定位当然是打开的,就是莫名其妙
2025-11-13 21:51