android藍牙開發(fā)小結(轉)

android藍牙開發(fā)小結(轉)

ID:14400096

大?。?1.00 KB

頁數(shù):7頁

時間:2018-07-28

android藍牙開發(fā)小結(轉)_第1頁
android藍牙開發(fā)小結(轉)_第2頁
android藍牙開發(fā)小結(轉)_第3頁
android藍牙開發(fā)小結(轉)_第4頁
android藍牙開發(fā)小結(轉)_第5頁
資源描述:

《android藍牙開發(fā)小結(轉)》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫

1、學習之前先了解兩個基本概念:一、RFCOMM協(xié)議:一個基于歐洲電信標準協(xié)會ETSI07.10規(guī)程的串行線性仿真協(xié)議。此協(xié)議提供RS232控制和狀態(tài)信號,如基帶上的損壞,CTS以及數(shù)據(jù)信號等,為上層業(yè)務(如傳統(tǒng)的串行線纜應用)提供了傳送能力。RFCOMM是一個簡單傳輸協(xié)議,其目的是針對如何在兩個不同設備上的應用之間保證一條完整的通信路徑,并在它們之間保持一通信段。RFCOMM是為了兼容傳統(tǒng)的串口應用,同時取代有線的通信方式,藍牙協(xié)議棧需要提供與有線串口一致的通信接口而開發(fā)出的協(xié)議。RFCOMM協(xié)議提供對基于L2CAP協(xié)議的串口仿真,基于E

2、TSI07.10??芍С衷趦蓚€BT設備之間同時保持高達60路的通信連接。RFCOMM只針對直接互連設備之間的連接,或者是設備與網(wǎng)絡接入設備之間的互連。通信兩端設備必須兼容于RFCOMM協(xié)議,有兩類設備:DTE(DataTerminalEndpoint,通信終端,如PC,PRINTER)和DCE(DataCircuitEndpoint,通信段的一部分,如Modem)。此兩類設備不作區(qū)分。二、MAC硬件地址MAC(Medium/MediaAccessControl,介質訪問控制)MAC地址是燒錄在NetworkInterfaceCard(網(wǎng)

3、卡,NIC)里的.MAC地址,也叫硬件地址,是由48比特長(6字節(jié)),16進制的數(shù)字組成.0-23位叫做組織唯一標志符(organizationallyunique,是識別LAN(局域網(wǎng))節(jié)點的標識.24-47位是由廠家自己分配。其中第40位是組播地址標志位。網(wǎng)卡的物理地址通常是由網(wǎng)卡生產廠家燒入網(wǎng)卡的EPROM(一種閃存芯片,通??梢酝ㄟ^程序擦寫),它存儲的是傳輸數(shù)據(jù)時真正賴以標識發(fā)出數(shù)據(jù)的電腦和接收數(shù)據(jù)的主機的地址。Android平臺提供的藍牙API去實現(xiàn)藍牙設備之間的通信,藍牙設備之間的通信主要包括了四個步驟:設置藍牙設備、尋找局

4、域網(wǎng)內可能或者匹配的設備、連接設備和設備之間的數(shù)據(jù)傳輸。以下是建立藍牙連接的所需要的一些基本類:BluetoothAdapter類:代表了一個本地的藍牙適配器。它是所有藍牙交互的的入口點。利用它你可以發(fā)現(xiàn)其他藍牙設備,查詢綁定了的設備,使用已知的MAC地址實例化一個藍牙設備和建立一個BluetoothServerSocket(作為服務器端)來監(jiān)聽來自其他設備的連接。BluetoothDevice類:代表了一個遠端的藍牙設備,使用它請求遠端藍牙設備連接或者獲取遠端藍牙設備的名稱、地址、種類和綁定狀態(tài)。(其信息是封裝在bluetoothso

5、cket中)。Bluetoothsocket類:代表了一個藍牙套接字的接口(類似于tcp中的套接字),它是應用程序通過輸入、輸出流與其他藍牙設備通信的連接點。Blueboothserversocket類:代表打開服務連接來監(jiān)聽可能到來的連接請求(屬于server端),為了連接兩個藍牙設備必須有一個設備作為服務器打開一個服務套接字。當遠端設備發(fā)起連接連接請求的時候,并且已經(jīng)連接到了的時候,Blueboothserversocket類將會返回一個bluetoothsocket。Bluetoothclass類:描述了一個藍牙設備的一般特點和能

6、力。它的只讀屬性集定義了設備的主、次設備類和一些相關服務。然而,它并沒有準確地描述所有該設備所支持的藍牙文件和服務,而是作為對設備種類來說的一個小小暗示。下面說說具體的編程實現(xiàn)1.啟動藍牙功能:首先通過調用靜態(tài)方法getDefaultAdapter()獲取藍牙適配器BluetoothAdapter,以后你就可以使用該對象了。如果返回為空,thestoryisover。例如:BluetoothAdaptermBluetoothAdapter=BluetoothAdapter.getDefaultAdapter();if(mBluetoot

7、hAdapter==null){//DevicedoesnotsupportBluetooth}其次,調用isEnabled()來查詢當前藍牙設備的狀態(tài),如果返回為false,則表示藍牙設備沒有開啟,接下來你需要封裝一個ACTION_REQUEST_ENABLE請求到intent里面,調用startActivityForResult()方法使能藍牙設備,例如:if(!mBluetoothAdapter.isEnabled()){IntentenableBtIntent=newIntent(BluetoothAdapter.ACTION_

8、REQUEST_ENABLE);startActivityForResult(enableBtIntent,REQUEST_ENABLE_BT);}2.查找設備:使用BluetoothAdapter類里的方

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。