YooooooO_0
YooooooO_0
  • 发布:2021-11-08 13:29
  • 更新:2023-10-20 17:45
  • 阅读:1340

ble蓝牙如何设置PHY

分类:uni-app

想要设置蓝牙的Phy到2M (PHY_LE_2M_MASK)提高蓝牙数据的传输速度,但是uni没有提供相关的api
于是自己尝试用native.js设置,但是在连接gatt的时候一直有问题,返回值是null

    let BluetoothDevice = plus.android.importClass('android.bluetooth.BluetoothDevice'),  
        bluetoothDevice = BAdapter.getRemoteDevice(deviceId),  
        mBluetoothGattCallback = plus.android.implements('io.dcloud.android.bluetooth.BluetoothGattCallback', {  
            onConnectionStateChange: function (gatt, status, newState) {  
                console.error("*******连接状态改变了")  
                console.error(gatt, status, newState)  
            },  
            onPhyUpdate: function (gatt, txPhy, rxPhy, status) {  
                console.error("*******phy更新了")  
                console.error(gatt, txPhy, rxPhy, status)  
            },  
            onMtuChanged: function (gatt, mtu, status) {  
                console.error("*******Mtu更新了")  
                console.error(gatt, mtu, status)  
            }  
        }),  
        mainActivity = plus.android.runtimeMainActivity(),  
        context = mainActivity.getApplicationContext()  
         /******** 下面一直返回null ***********/  
    let mBluetoothGatt = bluetoothDevice.connectGatt(context, false, mBluetoothGattCallback)  

查看Android文档上设置Phy和设置Mtu是差不多的,而且uni已经提供了设置Mtu的api,是不是可以加上设置Phy的api了

2021-11-08 13:29 负责人:无 分享
已邀请:
DCloud_App_Array

DCloud_App_Array

不推荐使用native.js,建议使用uni原生插件扩展实现,参考:https://nativesupport.dcloud.net.cn/NativePlugin/README

  • YooooooO_0 (作者)

    使用原生插件可以用uni的api连接蓝牙后,获取到蓝牙服务然后设置phy吗?

    如果不行的话不就不能用uni的蓝牙api了,全部都要用原生的写

    这样之前的工作都废掉了啊

    2021-11-09 17:56

  • DCloud_App_Array

    回复 YooooooO_0: 如果此配置是全局的应该可以生效,可以先尝试下。

    至于设置PHY是否需要添加uni接口,我们还需要调研确认。

    2021-11-10 11:24

1***@qq.com

1***@qq.com

这个后续怎么解决的?还是硬件方那边可以直接设置,而手机端不需要再去更改? 这个值1M和2M区别大么么?

1***@qq.com

1***@qq.com - 阿拉赛

建议把设置Phy功能加上,我们这边也有这样的需求

要回复问题请先登录注册