Android--【CSRMesh蓝牙开发】CSRMesh1.3开发

最近公司开始开发蓝牙设备,使用的是csr的芯片开发,由于我是刚入职,公司的iOS工程师早入职,所以iOS版本的APP已经开发完成准备上线了,导致Android这边的开发时间比较急促。刚开始接手,因为CSR的文档都是英文的,让我这个当年高考英语不及格的人,读起来非常吃力,在网上找到“子非鱼”的博客对CSR的demo有一些介绍,但是因为他只针对灯具,而我们还要控制其他的电器,所以虽然给了我很大的帮助,但第一天开发,还是摸不着点,最后自己研究了两天,算是把这个demo跟文档理得差不多了,所以想记录一下,也算是总结吧。
首先集成方面,我是直接把demo相关的工具类复制过来了,这里需要注意的是清单文件里面需要给meshService注册和添加相关权限。以下注册代码:

    <service
          android:name="com.csr.mesh.MeshService"
          android:enabled="true"
          android:exported="false" >
      </service>

然后开发从MainActivity开始,第一步是在onCreate里面创建service连接。

// 创建service连接
Intent bindIntent = new Intent(this, MeshService.class);
bindService(bindIntent, mServiceConnection, Context.BIND_AUTO_CREATE);

这里绑定了mServiceConnection作为Service的回调,一旦绑定了这个Service,就会调用以下方法,来初始化栈和连接CSRmesh桥接设备,自动扫描和桥接:

mService.setHandler(mMeshHandler);//设置Handler,接受来自CSRmesh网络的事件信号。
mService.setLeScanCallback(mScanCallBack);//设置蓝牙扫描回调
mService.setMeshListeningMode(true, true);
mService.autoConnect(1, 15000, 0, 2);

这里要注意在onDestroy里面注销Handler和callBack的绑定以释放资源(注销方法可查看1.3的demo)!
关于MeshService的更详细介绍,如果英文够好可以看看文档,或者看看“子非鱼”的翻译。!!这里就不在翻译了。
扫描桥接完成之后,Handler 会发送 MESSAGE_LE_CONNECTED 信号,注意demo里面的setSecurity跟setTTLForMCPs这两个方法,这里,读取联网密码,并设置uuidHash,网络密钥。这是非常关键的地方。

最后看看APP发送数据给设备的API,CSR Demo里面是针对特定灯具控制的,所以有些API并没有用到,这里我们就需要看文档寻找其他的API了,其中有一个DataModelApi
类,里面有一个sendData方法,普通设备的命令都可以通过这个方法发送,这里有三个参数:
deviceId -设备ID,由于我是以广播的形式发送的,所以发0即可;
data - 需要发送的命令,注意这里不能超过10个字节;
acknowledged -数据块传输,默认false;
另外我这里补充一个MeshHandler 的MeshService.MESSAGE_RECEIVE_BLOCK_DATA,这个是智能设备向APP发送数据时Handler接收数据的标志信号,列如APP发出查询指令时,设备会返回数据,就是在这个ID下获取的。一般蓝牙一次只能发送10个字节,所以我这里是直接用byte数组获取16进制数据。

byte [] data = msg.getData().getByteArray(MeshService.EXTRA_DATA);

基本的调用流程大概就是这样了,如果读者看到有错误的地方,欢迎吐槽。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
要在Android Studio开发环境搭建中创建一个Activity,你可以按照以下步骤进行操作: 1. 首先,在Android Studio中打开你的项目。 2. 在项目的资源视图中,右键点击"app"文件夹,选择"New",然后选择"Activity"。 3. 在弹出的对话框中,选择你想要创建的Activity类型,比如"Empty Activity"或"Basic Activity"。 4. 给你的Activity命名,并选择相关的选项,比如是否生成布局文件等。 5. 点击"Finish"按钮,Android Studio会自动生成相应的代码和布局文件。 6. 在生成的Activity类中,你可以添加你的业务逻辑和界面设计。 7. 如果需要,在AndroidManifest.xml文件中注册你的Activity,以便在应用程序中能够访问它。 这样,你就成功在Android Studio开发环境中创建了一个Activity。你可以根据你的需求在这个Activity中添加更多的功能和界面设计。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Android开发相关的学习资料](https://download.csdn.net/download/m0_57840386/85431994)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Android Studio开发环境的搭建](https://blog.csdn.net/weixin_41957626/article/details/127336213)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Android Studio开发环境搭建](https://blog.csdn.net/weixin_64192827/article/details/127044187)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值