uni.openBluetoothAdapter({
success:(res)=>{
console.log('蓝牙模块打开成功')
uni.startBluetoothDevicesDiscovery({
success(res) {
console.log('startBluetoothDevicesDiscovery:')
console.log(res)//{"errMsg":"startBluetoothDevicesDiscovery:ok"}
}
})
uni.onBluetoothDeviceFound(function (devices) {
console.log('检索到的蓝牙设备:')
console.dir(devices) //这里完全就是个空的
})
setTimeout(()=>{
uni.getBluetoothAdapterState({
success(res) {
console.log(res)
/* 这个打印出来是:
{
"discovering": true,
"available": true,
"errMsg": "getBluetoothAdapterState:ok"
} */
}
})
}, 1000)
},
fail:(res)=>{
console.log('蓝牙模块打开失败',res)
},
complete:(e) => {
console.log('complete:')
console.log(e)//{"errMsg":"openBluetoothAdapter:ok"}
}
})
- 发布:2024-09-14 09:22
- 更新:2024-10-30 16:07
- 阅读:342
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win11
HBuilderX类型: 正式
HBuilderX版本号: 3.99
手机系统: Android
手机系统版本号: Android 12
手机厂商: 不止一台,能拿到的手机都试了
手机机型: 不止一台
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
直接在onLoad里面运行上面的代码
直接在onLoad里面运行上面的代码
预期结果:
打印出搜索到的蓝牙设备列表
打印出搜索到的蓝牙设备列表
实际结果:
完全搜索不到
完全搜索不到
bug描述:
用hbuilder云打包的app和直接用hbuilder连手机调试,createBLEConnection始终连接不上,后来尝试startBluetoothDevicesDiscovery直接检索蓝牙列表,发现也检索不出来(手机蓝牙和其他蓝牙软件都能查到),干脆新建了一个工程,单纯的就是检索蓝牙列表,也是空的,感觉完全搜索不到蓝牙设备了。(用getBluetoothAdapterState查了下状态都正常)
定位也都开了的。。。权限也有
代码和打印信息如图。
14 个回复
1***@qq.com (作者)
有人能解决一下吗?
1***@qq.com
1***@qq.com (作者)
谢谢,这样试过了的,一样的,完全搜索不到。
2024-09-19 08:12
1***@qq.com (作者)
有官方技术人员支持吗?真的是按文档最简单搜索列表都出不来啊
1***@qq.com (作者)
。。。。有人理理吗?
1***@qq.com (作者)
。。。
3***@qq.com
我还没有 用过 uni 写过 蓝牙
要不要 在 微信小程序里 试试, 看看 微信小程序的 文档, 如果可以的话 , 那可能 就是 uni 在app端有点bug
2024-09-25 08:37
1***@qq.com (作者)
回复 3***@qq.com: 微信小程序是可以的,最开始就是同一套代码,在微信小程序里面没问题,后来要做app,就把那段代码拷过来,wx.改成uni.,然后离线打包也没问题的。但后来因为加了高德地图,离线打包出错,就改成了云打包,然后就发现蓝牙就不行了。。。所以后来为了测试我就建了这个项目做个简单的蓝牙搜索,才发现直接用hbuilder手机调试也是连搜索蓝牙都不行了。。。
2024-09-25 16:41
1***@qq.com (作者)
有技术人员能看看吗?真的就是最简单的搜蓝牙列表,手机也开了定位,自己实在想不出还有什么别的能尝试的办法了。
1***@qq.com (作者)
有技术人员能解答一下吗?uniapp还有技术人员维护吗?
1***@qq.com (作者)
。。。uniapp还有维护的吗?
4***@qq.com
给app开关一下附件设备权限就能搜到,这个bug是uni-app现在会自动获取附件设备权限,但又不能用
1***@qq.com (作者)
看了下,附近设备的权限给了的。。。是试了好几台安卓机,都这样
2024-10-09 18:13
4***@qq.com
回复 1***@qq.com: 附近设备权限先关掉,在开启
2024-10-10 08:50
1***@qq.com (作者)
回复 4***@qq.com: 试了下,还是不行T_T
2024-10-10 10:58
俞19
位置权限给了么,定位功能开了吗
1***@qq.com (作者)
都打开了的
2024-10-09 18:13
沐子鱼 - 你好
uniapp只支持ble的蓝牙 可能你的是spp经典蓝牙 所以搜索不到
1***@qq.com (作者)
都是ble蓝牙,以前都可以的,以前用本地打包都没问题,这次是直接用hbuild调试和离线打包就不行了。。。同样的代码,微信小程序能搜到周边的蓝牙设备
2024-10-09 18:15
1***@qq.com (作者)
对了设置的权限:
[
"<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_LOCATION_EXTRA_COMMANDS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_MOCK_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.BLUETOOTH\"/>",
"<uses-permission android:name=\"android.permission.BLUETOOTH_ADMIN\"/>",
"<uses-permission android:name=\"android.permission.BLUETOOTH_PRIVILEGED\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",
"<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
"<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"/>",
"<uses-permission android:name=\"android.permission.INTERNET\"/>"
]
沐子鱼
app模块 勾选了吗?
BLUETOOTH_SCAN 这个可以加下
2024-10-10 14:38
1***@qq.com (作者)
回复 沐子鱼: android.permission.BLUETOOTH_SCAN 这个吗?刚刚加了,也一样。。。app模块里面也勾选了低功耗蓝牙的。
2024-10-10 15:01
沐子鱼
回复 1***@qq.com: 用的标准基座吗?自定义的话 要重新打的
2024-10-10 15:07
1***@qq.com (作者)
回复 沐子鱼: 这个测试项目是用的标准基座
2024-10-11 11:44
1***@qq.com (作者)
有技术人员能解答一下吗?
沐子鱼
看下位置信息是否打开 ble需要打开位置信息 才能检索到
2024-10-18 15:12
1***@qq.com (作者)
回复 沐子鱼: 位置信息权限打开了的
2024-10-21 08:11
沐子鱼
那就不知道了。。。
2024-10-22 08:49
1***@qq.com (作者)
回复 沐子鱼: 请问你们手机直接用云打包或者hbuilder调试蓝牙这块没问题吗?
2024-10-23 08:05
沐子鱼
回复 1***@qq.com: 我碰到 没搜索到的情况 就几种 1.蓝牙是spp模式非ble 2.位置信息权限未打开 其它没碰到过了 3.当然会用比的蓝牙调试工具测试,如果还是未搜到直接找蓝牙提供商解决
2024-10-24 18:05
1***@qq.com (作者)
回复 沐子鱼: 谢谢。我们是ble蓝牙,位置信息也都开了,而且办公室好多蓝牙设备,现在是一个设备都搜不出,几台手机同时测了都这样,所以很奇怪,但是离线打包的话可以,感觉是权限问题,但比较了一下权限又都给了,实在是自己找不出原因了。。。
2024-10-29 08:08
5***@qq.com
targetSdk是多少
1***@qq.com (作者)
没有设置targetSdk,示例代码的这个目前还只是用hbuilder调试就发现不行。
2024-10-31 08:28