1***@qq.com
1***@qq.com
  • 发布:2025-11-08 16:13
  • 更新:2025-11-17 09:27
  • 阅读:90

【报Bug】startBluetoothDevicesDiscovery:fail Location services are turned off

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: windows11

HBuilderX类型: Alpha

HBuilderX版本号: 4.83

手机系统: Android

手机系统版本号: Android 10

手机厂商: 杂牌扫码机

手机机型: EDA51

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

uni.startBluetoothDevicesDiscovery({
success(res) {
// console.log(res)
},
fail(err) {
console.log(err)
}
});

操作步骤:

手机调试,调用方法后报错,位置和权限都已经开启

预期结果:

成功查询到蓝牙列表

实际结果:

代码报错
{
"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
}

2025-11-08 16:13 负责人:无 分享
已邀请:
9***@qq.com

9***@qq.com - uniapp前端开发

我也遇到一样的问题,啥办法都没有!使用苹果手机就一点问题都没有,真是无语

  • hengsen

    安卓手机要把定位打开才能搜索

    2025-11-13 09:23

  • 9***@qq.com

    回复 hengsen: 定位当然是打开的,就是莫名其妙

    2025-11-13 21:51

9***@qq.com

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  
                    }  
                }
  • 1***@qq.com (作者)

    回退老版本了,老版本打包就没有这个问题,这没办法,手机确实已经开启定位了,总不能让客户换手机吧

    2025-12-01 17:11

  • 9***@qq.com

    回复 1***@qq.com: 你看一下试试能不能解决 https://ask.dcloud.net.cn/article/42262

    2025-12-05 10:31

要回复问题请先登录注册