亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Android藍牙通訊的研究

        2012-01-29 08:35:50四川大學軟件學院侯新琦
        電子世界 2012年11期
        關鍵詞:四川大學內核藍牙

        四川大學軟件學院 侯新琦 李 佳

        基于Android藍牙通訊的研究

        四川大學軟件學院 侯新琦 李 佳

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

        Linux內核;Android系統(tǒng);藍牙驅動;通訊;設備;網(wǎng)絡驅動

        1.引言

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

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

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

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

        3.Android藍牙協(xié)議

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

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

        L2CAP:Logical Link Control and Adaptation Protocol

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

        RFCOMM:Radio Frequency Communication(s)

        串行線性仿真協(xié)議,是為了兼容傳統(tǒng)的串口應用,同時取代有線的通信方式,藍牙協(xié)議棧需要提供與有線串口一致的通信接口而開發(fā)出的協(xié)議。RFCOMM協(xié)議提供對基于L2CAP協(xié)議的串口仿真,基于ETSI07.10??芍С衷趦蓚€BT設備之間同時保持高達60路的通信連接。

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

        SDP:Service Discovery Protocol

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

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

        圖1

        4.基于Linux內核的Android藍牙基本結構

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

        4.1 Android藍牙系統(tǒng)包含內容

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

        Linux內核的藍牙驅動程序:Linux內核的藍牙協(xié)議層;

        bluez(藍牙在用戶空間的庫);bluez適配層;

        Android.bluetooth包中的各個類(藍牙在框架層的內容);

        藍牙相關的應用程序。

        4.2 Android藍牙系統(tǒng)基本結構

        Android的藍牙部分的結構如下圖1。

        5.Android藍牙開發(fā)

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

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

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

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

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

        藍牙的服務器端通過線程來注冊一個具有名稱和唯一識別的UUID號的BluetoothServerSocket,然后一直監(jiān)聽客戶端(BluetoothSocket)的請求,并對這些請求作出相應的處理,代碼實現(xiàn)如下:

        在實際開發(fā)中,需要首先判斷本地藍牙是否處于啟動狀態(tài),因為在連接時首先要確保本地藍牙已經(jīng)啟動,然后取得要連接的藍牙服務器,進而通過Bluetoothdevice的createRfcommSocketT oServiceRecord方法傳入唯一的標識UUID創(chuàng)建了一個BluetoothSocket對象,最后通過connet方法與服務器進行了連接。

        6.結束語

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

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

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

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

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

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

        猜你喜歡
        四川大學內核藍牙
        萬物皆可IP的時代,我們當夯實的IP內核是什么?
        藍牙音箱的直線之美
        四川大學西航港實驗小學
        中小學校長(2021年9期)2021-10-14 14:36:16
        強化『高新』內核 打造農業(yè)『硅谷』
        基于嵌入式Linux內核的自恢復設計
        Linux內核mmap保護機制研究
        簡單、易用,可玩性強Q AcousticsBT3藍牙音箱
        適合自己的才是最好的 德生(TECSUN) BT-50藍牙耳機放大器
        緊急:藍牙指尖陀螺自燃!安全隱患頻出
        玩具世界(2017年8期)2017-02-06 03:01:38
        百年精誠 譽從信來——走進四川大學華西眼視光之一
        日本熟妇免费一区二区三区| 国产高清在线精品一区二区三区 | 亚洲人成人影院在线观看| 国产成人av一区二区三区在线 | 少妇高潮太爽了在线看| 国产狂喷潮在线观看| 国产精品网站在线观看免费传媒| 亚洲乱码日产精品bd| 久久国产国内精品对话对白| 国内自拍视频在线观看h| 亚洲精品乱码久久麻豆| 国产自拍在线观看视频 | 亚洲成在人线av品善网好看| 真实国产乱啪福利露脸| 日产精品久久久久久久| 精品国产日韩无 影视| 国产黄色一级大片一区二区 | 在线播放真实国产乱子伦| 人妻丰满熟妇av无码片| 人成午夜免费大片| 亚洲国产综合专区在线电影| 美女被躁到高潮嗷嗷免费观看 | 一本无码中文字幕在线观| 伊在人天堂亚洲香蕉精品区| 人妻丰满熟妇av无码片| 天天插视频| 日本一区二区日韩在线| 少妇被猛烈进入中文字幕| 国99精品无码一区二区三区| 亚洲国产aⅴ成人精品无吗| 无码国产69精品久久久久孕妇| 九九精品国产亚洲av日韩 | 中文字幕高清无码不卡在线| 三级网站亚洲三级一区| 精品精品国产高清a毛片| 色一情一乱一伦一区二区三区日本 | 亚洲av色av成人噜噜噜| 中国老太婆bb无套内射| 国精产品一品二品国在线| 欧美久久久久中文字幕| 亚洲人成网站久久久综合|