想要设置蓝牙的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了
YooooooO_0 (作者)
使用原生插件可以用uni的api连接蓝牙后,获取到蓝牙服务然后设置phy吗?
如果不行的话不就不能用uni的蓝牙api了,全部都要用原生的写
这样之前的工作都废掉了啊
2021-11-09 17:56
DCloud_App_Array
回复 YooooooO_0: 如果此配置是全局的应该可以生效,可以先尝试下。
至于设置PHY是否需要添加uni接口,我们还需要调研确认。
2021-11-10 11:24