100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > android调用支付宝小程序 支付宝小程序蓝牙 快速接入

android调用支付宝小程序 支付宝小程序蓝牙 快速接入

时间:2019-09-10 04:27:10

相关推荐

android调用支付宝小程序 支付宝小程序蓝牙 快速接入

支付宝小程序蓝牙 快速接入

基本流程

对于有蓝牙接入需求的开发者,需要通过以下步骤完成蓝牙接入:

初始化蓝牙接口(my.openBluetoothAdapter)

初始化事件监听

蓝牙适配器状态监听(my.onBluetoothAdapterStateChange)

蓝牙发现事件监听(my.onBluetoothDeviceFound)

蓝牙连接状态事件监听(my.onBLEConnectionStateChanged)

搜索设备(my.startBluetoothDevicesDiscovery)

查找设备并连接(my.connectBLEDevice)

停止搜索设备(my.stopBluetoothDevicesDiscovery)

遍历蓝牙外设服务和特征

获取服务(my.getBLEDeviceServices)

获取特征(my.getBLEDeviceCharacteristics)

监听特征值变化事件通知(my.onBLECharacteristicValueChange)

设置读特征通知模式(my.notifyBLECharacteristicValueChange)

读写数据

向设备的特征值写数据(my.writeBLECharacteristicValue)

向设备的特征值读数据(my.readBLECharacteristicValue)

断开连接(my.disconnectBLEDevice)

关闭蓝牙适配器(my.closeBluetoothAdapter)

业务流程图

调用示例

//初始化

my.openBluetoothAdapter({

success: (res) => {

console.log(res);

}

});

//注册发现事件

my.onBluetoothDeviceFound({

success: (res) => {

let device = res.devices[0];

//连接发现的设备

my.connectBLEDevice({

deviceId: deviceId,

success: (res) => {

console.log(res)

},

fail:(res) => {

},

complete: (res)=>{

}

});

//停止搜索

my.stopBluetoothDevicesDiscovery({

success: (res) => {

console.log(res)

},

fail:(res) => {

},

complete: (res)=>{

}

});

}

});

//注册连接事件

my.onBLEConnectionStateChanged({

success: (res) => {

console.log(res);

if (res.connected) {

//开始读写notify等操作

my.notifyBLECharacteristicValueChange({

deviceId: deviceId,

serviceId: serviceId,

characteristicId: characteristicId,

success: (res) => {

console.log(res)

},

fail:(res) => {

},

complete: (res)=>{

}

});

}

}

});

//注册接收read或notify的数据

my.onBLECharacteristicValueChange({

success: (res) => {

console.log(res);

}

});

//开始搜索

my.startBluetoothDevicesDiscovery({

services: ['fff0'],

success: (res) => {

console.log(res)

},

fail:(res) => {

},

complete: (res)=>{

}

});

//断开连接

my.disconnectBLEDevice({

deviceId: deviceId,

success: (res) => {

console.log(res)

},

fail:(res) => {

},

complete: (res)=>{

}

});

//注销事件

my.offBluetoothDeviceFound();

my.offBLEConnectionStateChanged();

my.offBLECharacteristicValueChange();

//退出蓝牙模块

my.closeBluetoothAdapter({

success: (res) => {

},

fail:(res) => {

},

complete: (res)=>{

}

});

常见问题

支持版本 android4.3以上支持ble

ios6以上都支持

deviceId,android取到的是蓝牙的mac地址(11:22:33:44:55:66),ios取到的是UUID(00000000-0000-0000-0000-000000000000这种格式)

调startBluetoothDevicesDiscovery接口搜索不到设备,请确保设备发出了广播。如果接口中有传入services,请确保设备的广播内容中包含了service的UUID

连接设备失败,请确认传入的deviceId是否正确,以及设备发出的信号是否足够强,在信号弱的时候可能会出现连接不上的情况

写数据失败,查看传入的deviceId、serviceId、characteristicId格式是否正确,deviceId是否已连接上(onBLEConnectionStateChanged这个事件中可以监听连接状态变化,getConnectedBluetoothDevices这个方法可以拿到),确保是在连接状态下调写入方法,查看characteristicId是否属于这个service,以及这个特征值是否支持写

读数据失败,同上,查看这个特征值是否支持读

收不到数据通知,请确认调了notifyBLECharacteristicValueChange这个方法以及传入的参数是否正确,传入的characteristicId特征值是否支持notify或indicate,以及确认硬件是否发出了通知。注意调用notifyBLECharacteristicValueChange方法的以及注册onBluetoothDeviceFound事件的顺序,最好是在连接之后就调用notifyBLECharacteristicValueChange方法。

事件回调多次调用,是由于多次匿名函数注册监听同一事件,因此建议每次调用on方法监听事件之前,先调用off方法,关闭之前的事件监听。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。