您好,欢迎进入凯发K8官网首页登录!

咨询热线:

020-88888888

凯发官网入口|Android应用之蓝牙传感应用

发布时间:2025-01-13 05:44人气:
本文摘要:如果传感器本身必须包括控制电路(例如收集血氧信号必须红外和红外线交错升空),那么传感器本身就必须带上一片主控IC,片内收集并输入数字信号了。

如果传感器本身必须包括控制电路(例如收集血氧信号必须红外和红外线交错升空),那么传感器本身就必须带上一片主控IC,片内收集并输入数字信号了。Android手机如何在不改为硬件电路的前提下与这类数字传感器交互呢?附加的通信方式就有USB和蓝牙,两种方式各有益处:USB方式可以给传感器供电,蓝牙方式要采买电源;USB接口标准不一,蓝牙广泛反对SPP协议。本文自由选择蓝牙方式做到讲解,讲解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()来读取蓝牙设备。再行来想到本文程序运行的效果图,选取的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++等值的数据。


本文关键词:凯发K8官网首页登录,凯发旗舰厅官网,凯发官网入口

本文来源:凯发K8官网首页登录-www.kuang666.com


020-88888888