1***@qq.com
1***@qq.com
  • 发布:2024-09-14 09:22
  • 更新:2024-10-30 16:07
  • 阅读:342

【报Bug】蓝牙模块能打开,但完全搜索不到设备

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 3.99

手机系统: Android

手机系统版本号: Android 12

手机厂商: 不止一台,能拿到的手机都试了

手机机型: 不止一台

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
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"}   
    }  
})  

操作步骤:

直接在onLoad里面运行上面的代码

预期结果:

打印出搜索到的蓝牙设备列表

实际结果:

完全搜索不到

bug描述:

用hbuilder云打包的app和直接用hbuilder连手机调试,createBLEConnection始终连接不上,后来尝试startBluetoothDevicesDiscovery直接检索蓝牙列表,发现也检索不出来(手机蓝牙和其他蓝牙软件都能查到),干脆新建了一个工程,单纯的就是检索蓝牙列表,也是空的,感觉完全搜索不到蓝牙设备了。(用getBluetoothAdapterState查了下状态都正常)

定位也都开了的。。。权限也有

代码和打印信息如图。

2024-09-14 09:22 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com (作者)

有人能解决一下吗?

1***@qq.com

1***@qq.com


uni.startBluetoothDevicesDiscovery({  
                    success(res) {  
                        // console.log('开始搜索', res);  
                        uni.onBluetoothDeviceFound(function(el) {  
                            // console.log('找到蓝牙名字:',el, el.devices[0].name);  
                        })  
                    },  
                    fail(err) {  
                        console.log('搜索失败', err)  
                    },  
                })
```这样试试
  • 1***@qq.com (作者)

    谢谢,这样试过了的,一样的,完全搜索不到。

    2024-09-19 08:12

1***@qq.com

1***@qq.com (作者)

有官方技术人员支持吗?真的是按文档最简单搜索列表都出不来啊

1***@qq.com

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 (作者)

有技术人员能看看吗?真的就是最简单的搜蓝牙列表,手机也开了定位,自己实在想不出还有什么别的能尝试的办法了。

1***@qq.com

1***@qq.com (作者)

有技术人员能解答一下吗?uniapp还有技术人员维护吗?

1***@qq.com

1***@qq.com (作者)

。。。uniapp还有维护的吗?

4***@qq.com

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

俞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

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

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

5***@qq.com

targetSdk是多少

  • 1***@qq.com (作者)

    没有设置targetSdk,示例代码的这个目前还只是用hbuilder调试就发现不行。

    2024-10-31 08:28

要回复问题请先登录注册