查看: 1929|回复: 0

[技术交流] 蓝牙欢乐爬坑行之五---安卓手机模拟BLE透传模块

[复制链接]

108

主题

163

帖子

618

积分

利尔达员工

Rank: 9Rank: 9Rank: 9

积分
618
发表于 2019-1-10 16:15:05 | 显示全部楼层 |阅读模式
Android从lolipop开始支持了BLE Peripheral开发。今天我们把一个安卓手机模拟成一个BLE透传模块,让手机也可以成为物联网的一个外围设备,后续可以提供边缘计算能力。不多说,直接上思路和代码。

第1步,先判断手机是否支持蓝牙从机角色。






通过红色的框里的内容就可以判断手机是否支持蓝牙从机角色的开发。


第2步,广播数据设置、开启广播和关闭广播。





广播内容目前支持服务设置,厂商自定义数据设置,发射功率等设置。
开启广播的接口mBluetoothLeAdvertiser.startAdvertising(createAdvSettings(true, 0), createAdvertiseData(), mAdvertiseCallback);
关闭广播的接口mBluetoothLeAdvertiser.stopAdvertising(mAdvertiseCallback);


第3步,添加服务、特征和属性。





作为从机角色,需要定义好自己的主服务,特征及属性,这里作为模拟透传模块,就简单定义两个双向通道。


第4步,创建服务端实例并注册回调。





从机角色的基本信息配置好后,主要创建一个server的实例,然后通过 mServer.addService(mService);把前面定义的服务添加进去。最后创建一个注册回调,用于接收连接、断开和数据接收等的事件。


第5步,数据收发。
作为从机,数据接收时候一般需要看onCharacteristicWriteRequest和onCharacteristicReadRequest的回调即可。
作为从机,数据发送时候需要如下接口发送出去。




第6步,广播和透传功能验证。
最后写好程序后,可以拿nRF Connect软件验证下。





文章到此就结束了,感兴趣的朋友可以写一个BLE遥控器,控制下家里的智能电视机;高级点的可以尝试集成讯飞的语音包,把手机模拟成海信电视遥控器玩玩;再高级点的可以把手机做成一个天猫精灵,进行智能家居产品的语音控制。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表