




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
知識(shí)點(diǎn)Androld藍(lán)牙應(yīng)用開(kāi)發(fā)介紹AndroidBluetooth服務(wù)架構(gòu)撰寫(xiě)應(yīng)用程序的步驟Android藍(lán)牙API132藍(lán)牙(Bluetooth)是由SonyEricsson公司所研發(fā)出來(lái)的。它是一種無(wú)線通訊協(xié)議(Wireless)。主要用于短程和低耗電的設(shè)備。其有效通訊范圍約30英呎左右,傳輸速度為1Mb/s。至于WiFi則可達(dá)到300英呎(11Mb/s的速度)的范圍。介紹AndroidBluetooth服務(wù)架構(gòu)類(lèi)似地,WiFi則通常達(dá)到300英呎(11Mb/s的速度)。所以,藍(lán)芽適用于無(wú)線的外圍設(shè)備,進(jìn)行小量傳輸。例如麥克風(fēng),手機(jī),鍵盤(pán)等。至于WiFi則適用于傳輸大量數(shù)據(jù),作為一般網(wǎng)絡(luò)(如LAN)的延伸。
所以,藍(lán)芽適用于短距離的無(wú)線的外圍設(shè)備,進(jìn)行小量數(shù)據(jù)傳輸。例如麥克風(fēng),手機(jī),鍵盤(pán)等等。至于WiFi則適用于大量數(shù)據(jù)傳輸。
Android平臺(tái)支持藍(lán)芽,讓一個(gè)設(shè)備能與其它藍(lán)芽設(shè)備進(jìn)行無(wú)線通信。Android應(yīng)用框架提供API,讓Android應(yīng)用程序能尋找周邊的藍(lán)芽設(shè)備,然后監(jiān)控藍(lán)芽設(shè)備之間建立無(wú)線連結(jié),以及進(jìn)行通信。
搜索及配對(duì)周邊的藍(lán)芽設(shè)備。配對(duì)后,取得本機(jī)的Bluetoothadapter。建立RFCOMM通道。建立聯(lián)機(jī)(Connection)。實(shí)際進(jìn)行數(shù)據(jù)傳輸。管理多條聯(lián)機(jī)。使用Android的藍(lán)芽API,應(yīng)用程序可以:撰寫(xiě)應(yīng)用程序的步驟步驟通常為:
step-1啟動(dòng)手機(jī)本身的藍(lán)芽服務(wù)
step-2偵測(cè)(及配對(duì))周邊藍(lán)芽設(shè)備
step-3建立配對(duì)設(shè)備之間的聯(lián)機(jī)
step-開(kāi)始進(jìn)行數(shù)據(jù)傳輸Android藍(lán)芽API定義于:
android.bluetooth
套件(Package)里。
包括下述的類(lèi):
Android藍(lán)芽APIBluetoothAdapter
本機(jī)的BluetoothAdapter對(duì)象(Object)
是藍(lán)芽通信的起點(diǎn)。透過(guò)它可以偵測(cè)和配對(duì)周邊的藍(lán)芽設(shè)備。使用MAC地址建立一個(gè)
BluetoothDevice對(duì)象
,且誕生一個(gè)BluetoothServerSocket
去監(jiān)聽(tīng)其它設(shè)備。BluetoothDevice
代表一個(gè)周邊的藍(lán)芽設(shè)備(BluetoothDevice)。
BluetoothSocket
透過(guò)它,就能使用InputStream和OutputStream來(lái)與藍(lán)芽設(shè)備互相傳輸數(shù)據(jù)了。
BluetoothServerSocket
代表一個(gè)服務(wù)端設(shè)備的socket,持續(xù)監(jiān)聽(tīng)外來(lái)的信息。由服務(wù)端設(shè)備先開(kāi)啟socket,當(dāng)由外來(lái)要求連結(jié)時(shí),服務(wù)端接受時(shí),
BluetoothServerSocket會(huì)回傳一個(gè)代表客方(Client)的BluetoothSocket。
BluetoothClass
敘述著一個(gè)藍(lán)芽設(shè)備的各項(xiàng)屬性。應(yīng)用程序需要宣告兩項(xiàng)授權(quán),宣告于Androidmanifest.xml文檔里,如下:<?xmlversion="1.0"encoding="utf-8"?>………<uses-permissionandroid:name="android.permission.BLUETOOTH"/>
<uses-permissionandroid:name="android.permission.BLUETOOTH_ADMIN"/>
………
</manifest>其中:BLUETOOTH_ADMIN
授權(quán)允許啟動(dòng)本手機(jī)的藍(lán)芽服務(wù)。BLUETOOTH
授權(quán)允許應(yīng)用程序去進(jìn)行通信。
先啟動(dòng)Server端設(shè)備的藍(lán)芽服務(wù),建立一個(gè)獨(dú)立的線程監(jiān)聽(tīng)來(lái)自Client的聯(lián)機(jī)要求。如下程序范例:?jiǎn)?dòng)Server端的藍(lán)芽服務(wù)privatestaticfinalStringNAME="BluetoothApp";privatestaticfinalUUIDMY_UUID=UUID.fromString("fa87c0d0-afac-11de-8a39-0800200c9a66");publicclassmyServiceextendsService{
@OverridepublicvoidonStart(BundlesavedInstanceState){
//啟動(dòng)Server端的藍(lán)芽功能
BluetoothAdaptermAdapter=BluetoothAdapter.getDefaultAdapter();Threadt=newbtThread();t.start();}
privateclassbtThreadextendsThread{
privatefinalBluetoothServerSocketmServerSocket=null;
publicbtThread(){
try{
//啟動(dòng)Server端的監(jiān)聽(tīng)
Socket
mServerSocket=mAdapter.listenUsingRfcommWithServiceRecord(NAME,MY_UUID);
}catch(IOExceptione){}
}
publicvoidrun(){
BluetoothSocketsocket=null;
while(true){
try{
//一旦監(jiān)聽(tīng)到Client端的聯(lián)機(jī)請(qǐng)求,
//就誕生一個(gè)socket去服務(wù)該Client。
socket=mServerSocket.accept();
}catch(IOExceptione){
break;
}
publicvoidcancel(){
try{
mServerSocket.close();
}catch(IOExceptione){}
}
}Server端的監(jiān)聽(tīng)Socket可以繼續(xù)監(jiān)聽(tīng)更多Client的請(qǐng)求。不過(guò)本例只接受一個(gè)Client而已。一旦Server端設(shè)備的藍(lán)芽功能已經(jīng)啟動(dòng),準(zhǔn)備就緒了;Client端可主動(dòng)去偵測(cè)它、進(jìn)行配對(duì)和建立聯(lián)機(jī)。代碼如下:
啟動(dòng)Client端的藍(lán)芽服務(wù)--偵測(cè)它、進(jìn)行配對(duì)和建立聯(lián)機(jī)publicclassmyBluetoothActivityextendsActivity{
//……..@OverridepublicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
//取得Bluetoothadapter對(duì)象,來(lái)執(zhí)行藍(lán)芽任務(wù)
BluetoothAdapteradapter=BluetoothAdapter.getDefaultAdapter();
//如果adapter不是null表示本機(jī)藍(lán)芽已經(jīng)啟動(dòng)
//偵測(cè)Server端的藍(lán)牙設(shè)備,及配對(duì)
adapter.startDiscovery();
//可能配對(duì)到多個(gè)周邊的藍(lán)芽設(shè)備
Set<BluetoothDevice>devices=adapter.getBondedDevices();
}
}
在建立連結(jié)時(shí),我們需要一個(gè)MAC地址和一個(gè)RFCOMM信道(Channel)??赏高^(guò)服務(wù)UUID來(lái)取得RFCOMM通道。代碼如下:
建立聯(lián)機(jī),並進(jìn)行通信
privatestaticfinalStringNAME="BluetoothApp";privatestaticfinalUUIDMY_UUID=UUID.fromString("fa87c0d0-afac-11de-8a39-0800200c9a66");private
staticStringaddress="XX:XX:XX:XX:XX:XX";//啟動(dòng)了本機(jī)的藍(lán)芽功能BluetoothAdapteradapter=BluetoothAdapter.getDefaultAdapter();BluetoothDevicedevice=adapter.getRemoteDevice(address);privatestaticfinalStringNAME="BluetoothApp";privatestaticfinalUUIDMY_UUID=UUID.fromString("fa87c0d0-afac-11de-8a39-0800200c9a66");private
staticStringaddress="XX:XX:XX:XX:XX:XX";//啟動(dòng)了本機(jī)的藍(lán)芽功能BluetoothAdapteradapter=BluetoothAdapter.getDefaultAdapter();BluetoothDevicedevice=adapter.getRemoteDevice(address);//使用UUID去取得RFCOMM通道m(xù)mSocket=device.createRfcommSocketToServiceRecord(MY_UUID);//透過(guò)RFCOMM通道去向Server發(fā)出聯(lián)機(jī)要求mmSocket.connect();//取得聯(lián)機(jī)的outStream接口
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程款支付申請(qǐng)表的填寫(xiě)規(guī)范與標(biāo)準(zhǔn)
- 采暖散熱器施工方案
- 星級(jí)酒店關(guān)系質(zhì)量研究調(diào)查
- 2025年液堿行業(yè)現(xiàn)狀分析:我國(guó)燒堿產(chǎn)量為3980.5萬(wàn)噸
- 江西省部分學(xué)校2024-2025學(xué)年高三上學(xué)期1月期末英語(yǔ)試題【含答案】
- 2024年普通?等學(xué)校招?全國(guó)統(tǒng)?考試上海語(yǔ)?試卷
- 裝修成品保護(hù)施工方案
- 上海市安全員-C3證考試題及答案
- 清除路肩雜草施工方案
- 新風(fēng)機(jī)組施工方案
- 供應(yīng)商管理控制流程圖
- 四年級(jí)下冊(cè)健康成長(zhǎng)教案(共26頁(yè))
- 義務(wù)教育語(yǔ)文課程標(biāo)準(zhǔn)(2022年版)
- 初中物理公式總結(jié)大全(最新歸納)
- 小學(xué)四年級(jí)《雞兔同籠》優(yōu)秀獲獎(jiǎng)公開(kāi)課分析
- 不均勻系數(shù)和曲率系數(shù)自動(dòng)升程計(jì)算(升級(jí)版)
- 《弟子規(guī)》(精美圖片版)(課堂PPT)
- GB 12268-2012 危險(xiǎn)貨物品名表(高清版)
- 威索燃燒器中文說(shuō)明書(shū)_圖文
- 四川省二元立木材積表
- NX-8V2安裝編程手冊(cè)
評(píng)論
0/150
提交評(píng)論