Android BLE 蓝牙通信库,flutter登录并保持会话

本文介绍了在Flutter应用中使用Android Bluetooth Low Energy(BLE)进行连接、读写Characteristic、监听Notify和Indicate的过程。通过示例代码展示了如何处理BLE设备的连接状态、读取RSSI以及清理请求队列。适用于移动开发人员进行蓝牙通信操作。
摘要由CSDN通过智能技术生成

public class Beacon {

public byte[] mBytes;

public List mItems;

}

BeaconItem 是按 type 来区分的,

public class BeaconItem {

/**

  • 广播中声明的长度

*/

public int len;

/**

  • 广播中声明的 type

*/

public int type;

/**

  • 广播中的数据部分

*/

public byte[] bytes;

}

然后根据自定义的协议,解析对应的 BeaconItem 中的 bytes,首先创建一个 BeaconParser,传入对应的 BeaconItem,然后根据协议不断读取数据, 如果协议中某个字段占 1 个字节,则调用 readByte,若占用两个字节则调用 readShort,如果要取某个字节的某个 bit 则调用 getBit。注意 parser 每读一次数据,指针就会相应向后移动,可以调用 setPosition 设置当前指针的位置。

BeaconItem beaconItem; // 设置成 beacon 中对应的 item

BeaconParser beaconParser = new BeaconParser(beaconItem);

int firstByte = beaconParser.readByte(); // 读取第 1 个字节

int secondByte = beaconParser.readByte(); // 读取第 2 个字节

int productId = beaconParser.readShort(); // 读取第 3,4 个字节

boolean bit1 = beaconParser.getBit(firstByte, 0); // 获取第 1 字节的第 1bit

boolean bit2 = beaconParser.getBit(firstByte, 1); // 获取第 1 字节的第 2bit

beaconParser.setPosition(0); // 将读取起点设置到第 1 字节处

BLE 设备通信


● 连接

连接过程包括了普通的连接(connectGatt)和发现服务(discoverServices),这里收到回调时表明服务发现已完成。回调参数 BleGattProfile 包括了所有的 service 和 characteristic 的 uuid。返回的 code 表示操作状态࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值