Android应用之蓝牙传感应用_亚搏体育app官网入口
发布时间:2022-07-15 00:38:02
本文摘要:如果传感器本身必须包括控制电路(例如收集血氧信号必须红外和红外线交错升空),那么传感器本身就必须带上一片主控IC,片内收集并输入数字信号了。

亚搏体育app官网入口

如果传感器本身必须包括控制电路(例如收集血氧信号必须红外和红外线交错升空),那么传感器本身就必须带上一片主控IC,片内收集并输入数字信号了。Android手机如何在不改为硬件电路的前提下与这类数字传感器交互呢?附加的通信方式就有USB和蓝牙,两种方式各有益处:USB方式可以给传感器供电,蓝牙方式要采买电源;USB接口标准不一,蓝牙广泛反对SPP协议。

亚搏体育app官网入口

本文自由选择蓝牙方式做到讲解,讲解Android的蓝牙API以及蓝牙客户端的用法。在Android2.0,官方再一公布了蓝牙API(2.0以下系统的非官方的蓝牙API可以参照这里:/p/android-bluetooth/)。Android手机一般以客户端的角色主动相连SPP协议设备(接通蓝牙模块的数字传感器),相连流程是:1.用于registerReceiver登记BroadcastReceiver来提供蓝牙状态、搜寻设备等消息;2.用于BlueAdatper的搜寻;3.在BroadcastReceiver的onReceive()里获得搜寻扣除的蓝牙设备信息(如名称,MAC,RSSI);4.通过设备的MAC地址来创建一个BluetoothDevice对象;5.由BluetoothDevice派生出有BluetoothSocket,打算SOCKET来读取设备;6.通过BluetoothSocket的createRfcommSocketToServiceRecord()方法来自由选择相连的协议/服务,这里用的是SPP(UUID:00001101-0000-1000-8000-00805F9B34FB);7.Connect之后(如果还没有筛选则系统自动提醒),用于BluetoothSocket的getInputStream()和getOutputStream()来读取蓝牙设备。

亚搏体育app官网入口

再行来想到本文程序运行的效果图,选取的SPP协议设备是一款单导联心电收集表格:本文的代码较多,可以到这里iTunes:本文程序包括两个Activity(testBlueTooth和WaveDiagram),testBlueTooth是搜寻创建蓝牙相连。BluetoothAdapter、BluetoothDevice和BluetoothSocket的用于很非常简单,除了前三者获取的功能外,还可以通过给系统发送到消息来掌控、提供蓝牙信息,例如:登记BroadcastReceiver:viewplaincopytoclipboardprint?IntentFilterintent=newIntentFilter();intent.addAction(BluetoothDevice.ACTION_FOUND);//用BroadcastReceiver来获得搜寻结果intent.addAction(BluetoothDevice.ACTION_BOND_STATE_CHANGED);intent.addAction(BluetoothAdapter.ACTION_SCAN_MODE_CHANGED);intent.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);registerReceiver(searchDevices,intent);IntentFilterintent=newIntentFilter();intent.addAction(BluetoothDevice.ACTION_FOUND);//用BroadcastReceiver来获得搜寻结果intent.addAction(BluetoothDevice.ACTION_BOND_STATE_CHANGED);intent.addAction(BluetoothAdapter.ACTION_SCAN_MODE_CHANGED);intent.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);registerReceiver(searchDevices,intent);在BroadcastReceiver的onReceive()枚举所有消息的内容:viewplaincopytoclipboardprint?Stringaction=intent.getAction();Bundleb=intent.getExtras();Object[]lstName=b.keySet().toArray();//表明所有接到的消息及其细节for(inti=0;ilstName.length;i++){StringkeyName=lstName[i].toString();Log.e(keyName,String.valueOf(b.get(keyName)));}Stringaction=intent.getAction();Bundleb=intent.getExtras();Object[]lstName=b.keySet().toArray();//表明所有接到的消息及其细节for(inti=0;ilstName.length;i++){StringkeyName=lstName[i].toString();Log.e(keyName,String.valueOf(b.get(keyName)));}在DDMS里面可以看见BluetoothDevice.ACTION_FOUND回到的消息:程序另外一个Activity~~~WaveDiagram用作加载蓝牙数据并绘制波形图,这里要留意一下JAVA的byte的给定范围是跟C/C++不一样的,Android接管到的byte数据要做到0xFF处置,改以C/C++等值的数据。

亚搏体育app官网入口


本文关键词:亚搏体育app官网入口

本文来源:亚搏体育app官网入口-www.ruibo123.com