在线观看免费黄色网址,一区二区视频,亚洲国产综合网,欧美VA免费高清在线观看

Android應(yīng)用之藍(lán)牙傳感應(yīng)用

來(lái)源:網(wǎng)絡(luò)

點(diǎn)擊:2405

A+ A-

所屬頻道:新聞中心

關(guān)鍵詞: Android,藍(lán)牙傳感

        如果傳感器本身需要包含控制電路(例如采集血氧信號(hào)需要紅外和紅外線交替發(fā)射),那么傳感器本身就需要帶一片主控IC,片內(nèi)采集并輸出數(shù)字信號(hào)了。Android手機(jī)如何在不改硬件電路的前提下與這類數(shù)字傳感器交互呢?可選的通信方式就有USB和藍(lán)牙,兩種方式各有好處:USB方式可以給傳感器供電,藍(lán)牙方式要自備電源;USB接口標(biāo)準(zhǔn)不一,藍(lán)牙普遍支持SPP協(xié)議。本文選擇藍(lán)牙方式做介紹,介紹Android的藍(lán)牙API以及藍(lán)牙客戶端的用法。
        在Android 2.0,官方終于發(fā)布了藍(lán)牙API(2.0以下系統(tǒng)的非官方的藍(lán)牙API可以參考這里:http://code.google.com/p/android-bluetooth/)。Android手機(jī)一般以客戶端的角色主動(dòng)連接SPP協(xié)議設(shè)備(接上藍(lán)牙模塊的數(shù)字傳感器),連接流程是:
    1.使用registerReceiver注冊(cè)BroadcastReceiver來(lái)獲取藍(lán)牙狀態(tài)、搜索設(shè)備等消息;
    2.使用BlueAdatper的搜索;
    3.在BroadcastReceiver的onReceive()里取得搜索所得的藍(lán)牙設(shè)備信息(如名稱,MAC,RSSI);
    4.通過(guò)設(shè)備的MAC地址來(lái)建立一個(gè)BluetoothDevice對(duì)象;

    5.由BluetoothDevice衍生出BluetoothSocket,準(zhǔn)備SOCKET來(lái)讀寫(xiě)設(shè)備;

    6.通過(guò)BluetoothSocket的createRfcommSocketToServiceRecord()方法來(lái)選擇連接的協(xié)議/服務(wù),這里用的是SPP(UUID:00001101-0000-1000-8000-00805F9B34FB);
    7.Connect之后(如果還沒(méi)配對(duì)則系統(tǒng)自動(dòng)提示),使用BluetoothSocket的getInputStream()和getOutputStream()來(lái)讀寫(xiě)藍(lán)牙設(shè)備。

    先來(lái)看看本文程序運(yùn)行的效果圖,所選的SPP協(xié)議設(shè)備是一款單導(dǎo)聯(lián)心電采集表:

    本文的代碼較多,可以到這里下載:本文程序包含兩個(gè)Activity(testBlueTooth和WaveDiagram),testBlueTooth是搜索建立藍(lán)牙連接。BluetoothAdapter、BluetoothDevice和BluetoothSocket的使用很簡(jiǎn)單,除了前三者提供的功能外,還可以通過(guò)給系統(tǒng)發(fā)送消息來(lái)控制、獲取藍(lán)牙信息,例如:

    注冊(cè)BroadcastReceiver:

    view plaincopy to clipboardprint?
    IntentFilter intent = new IntentFilter();  
    intent.addAction(BluetoothDevice.ACTION_FOUND);// 用BroadcastReceiver來(lái)取得搜索結(jié)果  
    intent.addAction(BluetoothDevice.ACTION_BOND_STATE_CHANGED);  
    intent.addAction(BluetoothAdapter.ACTION_SCAN_MODE_CHANGED);  
    intent.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);  
    registerReceiver(searchDevices, intent); 
      IntentFilter intent = new IntentFilter();
      intent.addAction(BluetoothDevice.ACTION_FOUND);// 用BroadcastReceiver來(lái)取得搜索結(jié)果
      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()枚舉所有消息的內(nèi)容:

    view plaincopy to clipboardprint?
    String action = intent.getAction();  
                Bundle b = intent.getExtras();  
                Object[] lstName = b.keySet().toArray();  
     
                // 顯示所有收到的消息及其細(xì)節(jié)  
                for (int i = 0; i < lstName.length; i++) {  
                    String keyName = lstName[i].toString();  
                    Log.e(keyName, String.valueOf(b.get(keyName)));  
                } 
    String action = intent.getAction();
       Bundle b = intent.getExtras();
       Object[] lstName = b.keySet().toArray();

       // 顯示所有收到的消息及其細(xì)節(jié)
       for (int i = 0; i < lstName.length; i++) {
        String keyName = lstName[i].toString();
        Log.e(keyName, String.valueOf(b.get(keyName)));
       }

    在DDMS里面可以看到BluetoothDevice.ACTION_FOUND返回的消息:

    程序另外一個(gè)Activity~~~WaveDiagram用于讀取藍(lán)牙數(shù)據(jù)并繪制波形圖,這里要注意一下JAVA的byte的取值范圍是跟C/C++不一樣的,Android接收到的byte數(shù)據(jù)要做"& 0xFF"處理,轉(zhuǎn)為C/C++等值的數(shù)據(jù)。

    (審核編輯: 智匯小新)

    聲明:除特別說(shuō)明之外,新聞內(nèi)容及圖片均來(lái)自網(wǎng)絡(luò)及各大主流媒體。版權(quán)歸原作者所有。如認(rèn)為內(nèi)容侵權(quán),請(qǐng)聯(lián)系我們刪除。

    坍塌旅馆靠4瓶水存活女孩谈获救经历| newjeans未来该何去何从 | 张家界回应因台词又在韩国爆火 | 男子发现打工养了7年的女儿非亲生| 甲亢哥成都行直播| 国家标准住宅项目规范发布| 我是如何熬过初中三年的| 林孝埈每天主打一个快乐| 张凌赫设计的竹节包什么样| 白敬亭 宋轶| 国家标准住宅项目规范发布| 黄子韬徐艺洋睡觉前要对暗号愚人节文案| 心理师锐评赵露思新综艺| 10元盒饭姐喊话浪费顾客一辈子别来 | 来自假惺惺的你| 白敬亭 宋轶| 男子赠妻子闺蜜7万被判全额返还加利息| 4人入室抢婴案妈妈索赔600多万| 房琪 彭小苒| 清明档预售前三名| 乌尔善发文| 中国咖啡98%来自云南| 时代少年团 录播| 周雨彤去冰岛了| IU说雪莉是最漂亮的人| 白敬亭 宋轶| 钟南山提醒剩饭剩菜别强吃| 国家标准住宅项目规范发布| 12306回应有人光脚踩座椅怎么办 10元盒饭姐喊话浪费顾客一辈子别来 | 黄子韬徐艺洋睡觉前要对暗号| by2十六年后再穿出道战衣| newjeans是高层内斗的牺牲品吗| 难哄3月全网播放冠军| 黄子韬徐艺洋睡觉前要对暗号愚人节文案 | 沉浸式感受广西三月三| 沉浸式感受广西三月三| 陈昊宇陈丽君四公帮唱| 真正的智能座舱从不挑手机品牌 | 好房子的新标准来了| 李现的微博逐渐奇怪| 马龙说全运会后还想参加比赛|