999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Android藍(lán)牙通訊的研究

2012-01-29 08:35:50四川大學(xué)軟件學(xué)院侯新琦
電子世界 2012年11期
關(guān)鍵詞:設(shè)備系統(tǒng)

四川大學(xué)軟件學(xué)院 侯新琦 李 佳

基于Android藍(lán)牙通訊的研究

四川大學(xué)軟件學(xué)院 侯新琦 李 佳

本文主要就基于Linux系統(tǒng)開發(fā)的Android手機(jī)操作系統(tǒng)中的藍(lán)牙驅(qū)動(dòng)部分做深入淺出的分析,詳細(xì)闡述了從Linux內(nèi)核到Android設(shè)備驅(qū)動(dòng)的藍(lán)牙相關(guān)知識(shí),為愛好Android系統(tǒng)開發(fā)者提供較為詳細(xì)的參考資料。

Linux內(nèi)核;Android系統(tǒng);藍(lán)牙驅(qū)動(dòng);通訊;設(shè)備;網(wǎng)絡(luò)驅(qū)動(dòng)

1.引言

在Android手機(jī)越來(lái)越普及的今天,對(duì)于很多用戶來(lái)說(shuō),不僅僅是手機(jī)應(yīng)用的使用,越來(lái)越多的手機(jī)愛好者走進(jìn)了應(yīng)用開發(fā)的領(lǐng)域。作為當(dāng)今網(wǎng)絡(luò)時(shí)代文件傳輸運(yùn)用最普遍的藍(lán)牙技術(shù),我們有必要將一些列的藍(lán)牙基于android的藍(lán)牙開發(fā)知識(shí)做一個(gè)詳細(xì)的概述,筆者將從Linux內(nèi)核概述入手,再分析藍(lán)牙協(xié)議最后通過(guò)實(shí)例來(lái)更為深入地對(duì)Android藍(lán)牙開發(fā)進(jìn)行說(shuō)明。

2.Android系統(tǒng)及其Linux內(nèi)核概述

Android系統(tǒng)是Google歷經(jīng)數(shù)年花費(fèi)眾多時(shí)間以及金錢開發(fā)出來(lái)的應(yīng)用于智能手機(jī)上的操作系統(tǒng),其最大的特點(diǎn)就是系統(tǒng)開放性。任何公司、個(gè)人開發(fā)者、愛好者都可以參與到系統(tǒng)中。同時(shí),Android不僅是一個(gè)智能手機(jī)的系統(tǒng),也可以作為學(xué)習(xí)嵌入式Linux系統(tǒng)較為完整的軟件平臺(tái)。

要研究Android系統(tǒng)就不能忽略其Linux內(nèi)核與驅(qū)動(dòng)程序。Android使用標(biāo)準(zhǔn)的Linux2.6內(nèi)核作為其操作系統(tǒng),隨著Android系統(tǒng)的普及,不同SDK版本中使用的Linux內(nèi)核版本也不同,不過(guò)整體的變化并不大。

3.Android藍(lán)牙協(xié)議

藍(lán)牙(Bluetooth)提供了移動(dòng)設(shè)備之間快速,方便的無(wú)線通信連接。近幾年來(lái)已經(jīng)廣發(fā)運(yùn)用于手機(jī)、立體聲耳機(jī)、以及無(wú)線打印機(jī)等設(shè)備中。其開發(fā)技術(shù)的核心,是根據(jù)藍(lán)牙標(biāo)準(zhǔn)所實(shí)現(xiàn)的藍(lán)牙協(xié)議棧,據(jù)悉,從第一個(gè)版本開發(fā)至今已經(jīng)有1.1/1.2/2.0/2.1/3.0等版本。Android藍(lán)牙協(xié)議與全球藍(lán)牙協(xié)議通用,協(xié)議棧使用BlueZ,并支持GAP,SDP以及RFCOMM規(guī)范,是一個(gè)SIG認(rèn)證的藍(lán)牙協(xié)議棧。它的底層協(xié)議層包括了眾多協(xié)議,如邏輯鏈路控制和適配協(xié)議(L2CAP)、服務(wù)發(fā)現(xiàn)協(xié)議(SDP)、串口模擬協(xié)議(RFCOMM)等。

在藍(lán)牙棧底層包含了L2CAP,RFCOMM,GAP,SDP等協(xié)議,下面就來(lái)簡(jiǎn)單的介紹一下這些協(xié)議:

L2CAP:Logical Link Control and Adaptation Protocol

邏輯鏈路控制與適配協(xié)議,L2CAP協(xié)議是藍(lán)牙系統(tǒng)中的核心協(xié)議,它是基帶的高層協(xié)議,可以認(rèn)為它與LMP并行工作。

RFCOMM:Radio Frequency Communication(s)

串行線性仿真協(xié)議,是為了兼容傳統(tǒng)的串口應(yīng)用,同時(shí)取代有線的通信方式,藍(lán)牙協(xié)議棧需要提供與有線串口一致的通信接口而開發(fā)出的協(xié)議。RFCOMM協(xié)議提供對(duì)基于L2CAP協(xié)議的串口仿真,基于ETSI07.10。可支持在兩個(gè)BT設(shè)備之間同時(shí)保持高達(dá)60路的通信連接。

RFCOMM模仿RS-232串口,這種仿真協(xié)議包含無(wú)數(shù)據(jù)連接狀態(tài)的傳輸。它可以支持兩個(gè)設(shè)備之間的多串口仿真?zhèn)鬏敗?/p>

SDP:Service Discovery Protocol

服務(wù)發(fā)現(xiàn)協(xié)議,是一個(gè)基于C/S結(jié)構(gòu)的協(xié)議,作為藍(lán)牙協(xié)議體系中的核心協(xié)議,它是藍(lán)牙系統(tǒng)的重要組成部分,是所有用戶模式得以實(shí)現(xiàn)的基礎(chǔ)。在藍(lán)牙系統(tǒng)中,用戶需要依靠SDP來(lái)獲取設(shè)備信息,服務(wù)信息及服務(wù)特征,并在此基礎(chǔ)上建立藍(lán)牙連接。

藍(lán)牙協(xié)議棧作為基于Android的藍(lán)牙通訊的核心,是整個(gè)藍(lán)牙通訊實(shí)現(xiàn)的關(guān)鍵,底層使用L2CAP,RFCOMM,SDP等協(xié)議支持整個(gè)基于Android的藍(lán)牙通訊是目前大多數(shù)Android藍(lán)牙通訊采用的方法。

圖1

4.基于Linux內(nèi)核的Android藍(lán)牙基本結(jié)構(gòu)

即使藍(lán)牙技術(shù)在通訊領(lǐng)域已經(jīng)有了廣泛的運(yùn)用,但在Android上的運(yùn)用還并非完美,很多的特性還在開發(fā)階段。

4.1 Android藍(lán)牙系統(tǒng)包含內(nèi)容

在進(jìn)行藍(lán)牙開發(fā)前,我們必須了解A-ndroid支持的藍(lán)牙系統(tǒng)包括的具體內(nèi)容:

Linux內(nèi)核的藍(lán)牙驅(qū)動(dòng)程序:Linux內(nèi)核的藍(lán)牙協(xié)議層;

bluez(藍(lán)牙在用戶空間的庫(kù));bluez適配層;

Android.bluetooth包中的各個(gè)類(藍(lán)牙在框架層的內(nèi)容);

藍(lán)牙相關(guān)的應(yīng)用程序。

4.2 Android藍(lán)牙系統(tǒng)基本結(jié)構(gòu)

Android的藍(lán)牙部分的結(jié)構(gòu)如下圖1。

5.Android藍(lán)牙開發(fā)

Android SDK從2.0版本開始支持藍(lán)牙功能,眾所周知,Android藍(lán)牙仍舊受10米短距離限制,并且會(huì)被周圍信號(hào)所干擾,但就數(shù)據(jù)傳輸已經(jīng)為用戶帶來(lái)了很多方便。不利的是,開發(fā)模擬器并不支持藍(lán)牙,開發(fā)調(diào)試只能在真機(jī)上進(jìn)行測(cè)試,并且至少有兩部手機(jī),也制約了很多技術(shù)人員的開發(fā)。

下面筆者將就在Eclipse3.5,SDK版本2.2上的Android開發(fā)進(jìn)行說(shuō)明。

首先,要進(jìn)行藍(lán)牙的開發(fā),必須在AndroidManifest.xml文件中加入如下權(quán)限:

首先用getDefaultAdapter方法取得默認(rèn)的藍(lán)牙適配器,并且創(chuàng)建一個(gè)用來(lái)存儲(chǔ)搜索到的藍(lán)牙設(shè)備BluetllthDevice的List。然后在程序開始時(shí)注冊(cè)了搜索已完成(BluetoothAdapter.ACTION_DISCOVERY_FINISHED)和發(fā)現(xiàn)設(shè)備(BluetoothDevice.ACTION_FOUND)兩個(gè)接收器BroadcastReceiver。然后通過(guò)一個(gè)線程來(lái)控制藍(lán)牙設(shè)備的搜索(starDiscovery),當(dāng)搜索中有觸發(fā)上面接收器的事件,就直接傳遞給接收器進(jìn)行保存。最后將保存在List中的BluetoothDevice顯示在一個(gè)ListView中。

接下來(lái)就是藍(lán)牙的最主要功能“傳送文件”的實(shí)現(xiàn)方法,我們將通過(guò)實(shí)現(xiàn)Socket連接來(lái)完成服務(wù)器和客戶端的建立以及數(shù)據(jù)的傳送。在Android的藍(lán)牙API中可以找到BluetoothServerSocket和BluetoothSocket類,在建立Socket連接時(shí)需要用到。首先介紹如何來(lái)實(shí)現(xiàn)一個(gè)藍(lán)牙Socket服務(wù)器。

藍(lán)牙的服務(wù)器端通過(guò)線程來(lái)注冊(cè)一個(gè)具有名稱和唯一識(shí)別的UUID號(hào)的BluetoothServerSocket,然后一直監(jiān)聽客戶端(BluetoothSocket)的請(qǐng)求,并對(duì)這些請(qǐng)求作出相應(yīng)的處理,代碼實(shí)現(xiàn)如下:

在實(shí)際開發(fā)中,需要首先判斷本地藍(lán)牙是否處于啟動(dòng)狀態(tài),因?yàn)樵谶B接時(shí)首先要確保本地藍(lán)牙已經(jīng)啟動(dòng),然后取得要連接的藍(lán)牙服務(wù)器,進(jìn)而通過(guò)Bluetoothdevice的createRfcommSocketT oServiceRecord方法傳入唯一的標(biāo)識(shí)UUID創(chuàng)建了一個(gè)BluetoothSocket對(duì)象,最后通過(guò)connet方法與服務(wù)器進(jìn)行了連接。

6.結(jié)束語(yǔ)

目前Android系統(tǒng)正以前所未有的速度發(fā)展,但藍(lán)牙的開發(fā)目前并沒有得到太多的關(guān)注,本文通過(guò)對(duì)Android藍(lán)牙開發(fā)的介紹為開發(fā)愛好者提供參考。本文以Linux2.6的內(nèi)核介紹開始,說(shuō)明藍(lán)牙協(xié)議棧,以及內(nèi)核空間庫(kù),最后再以詳細(xì)的開發(fā)代碼完整了對(duì)Android藍(lán)牙開發(fā)的全過(guò)程。藍(lán)牙技術(shù)在很多領(lǐng)域已經(jīng)成熟,在國(guó)內(nèi)也正在如火如荼地發(fā)展,相信在短時(shí)間內(nèi),藍(lán)牙開發(fā)一定會(huì)在Android應(yīng)用開發(fā)方面占領(lǐng)一席之地。

[1]楊豐盛.Android應(yīng)用開發(fā)揭秘[M].北京:機(jī)械工業(yè)出版社,2010.

[2]韓超,梁泉.Android系統(tǒng)原理及開發(fā)要點(diǎn)詳解[M].北京:電子工業(yè)出版社,2010.

[3]靳巖,姚尚郎.Google Android開發(fā)入門與實(shí)戰(zhàn)[M].北京:人民郵電出版社,2009.

侯新琦(1992—),女,四川達(dá)州人,現(xiàn)就讀于四川大學(xué)軟件學(xué)院,研究方向:軟件工程。

李佳(1991—),女,遼寧海城人,現(xiàn)就讀于四川大學(xué)軟件學(xué)院,研究方向:軟件工程。

猜你喜歡
設(shè)備系統(tǒng)
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無(wú)人機(jī)系統(tǒng)
ZC系列無(wú)人機(jī)遙感系統(tǒng)
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
基于VB6.0+Access2010開發(fā)的設(shè)備管理信息系統(tǒng)
基于MPU6050簡(jiǎn)單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
500kV輸變電設(shè)備運(yùn)行維護(hù)探討
主站蜘蛛池模板: 中文纯内无码H| 国产精品私拍在线爆乳| 欧美日韩综合网| 亚洲v日韩v欧美在线观看| 2048国产精品原创综合在线| 国产av无码日韩av无码网站| 一本久道久久综合多人| 国产精品一区二区无码免费看片| 日韩精品毛片人妻AV不卡| 欧美色亚洲| 国产呦视频免费视频在线观看| 亚洲天堂久久| 亚洲中文字幕av无码区| 广东一级毛片| 99免费在线观看视频| 国产午夜精品鲁丝片| 天天综合网色| 亚洲高清在线播放| 国产麻豆永久视频| 91丨九色丨首页在线播放 | 亚洲天堂网视频| 伊人福利视频| 在线无码九区| 91免费片| 成人福利在线视频| 色有码无码视频| 人妻中文久热无码丝袜| 亚洲欧洲日韩综合色天使| 国产精品hd在线播放| 欧美在线黄| a天堂视频在线| 天堂av综合网| 又粗又硬又大又爽免费视频播放| 免费啪啪网址| 99免费在线观看视频| 在线精品视频成人网| 久久96热在精品国产高清| 欧美亚洲中文精品三区| 曰韩免费无码AV一区二区| 91麻豆精品国产高清在线| 国内精品九九久久久精品| 国产在线拍偷自揄拍精品| 91久久性奴调教国产免费| 99视频精品在线观看| 国产在线一区视频| 国产伦精品一区二区三区视频优播| 国产97视频在线观看| h视频在线播放| 亚洲欧美极品| 女人18毛片水真多国产| 国产成人综合日韩精品无码不卡| 久久香蕉国产线看观看精品蕉| 欧美在线中文字幕| 18禁黄无遮挡免费动漫网站| 欧洲成人在线观看| 日本在线亚洲| 一本视频精品中文字幕| a级免费视频| 国产亚洲精品97AA片在线播放| 免费A级毛片无码免费视频| 精品偷拍一区二区| 四虎影视永久在线精品| 亚洲爱婷婷色69堂| 亚洲大尺码专区影院| 成人在线综合| 白浆视频在线观看| 国产精品无码制服丝袜| 国产精品va免费视频| 亚洲精品成人7777在线观看| 制服丝袜一区二区三区在线| 无码一区二区三区视频在线播放| 在线亚洲精品自拍| 天天摸天天操免费播放小视频| 国产菊爆视频在线观看| AⅤ色综合久久天堂AV色综合| 国产精品私拍99pans大尺度 | 91精品啪在线观看国产60岁 | 久久精品人人做人人爽电影蜜月| 无码免费的亚洲视频| 欧美日韩国产精品va| 91在线中文| 国产在线观看91精品|