本章內容是 Android.bluetooth.BluetoothDevice,為Android藍牙部分的章節翻譯,版本為 Android 2.3 r1,翻譯來自中山大學的"Android Club SYSU",歡迎訪問他們的WIKI:HTTP: //www.android-wiki.net,再次感謝"Android Club SYSU"!期待你一起參與Android中文API的翻譯,聯繫我 over140@gmail.com。


聲明

  歡迎轉載,但請保留文章原始出處:)

    Android Club SYSU:HTTP://www.android-wiki.net

    移動社區:HTTP://dev.10086.cn

    Android中文翻譯組:HTTP://code.taobao.org/project/view/404/

 

正文

  一、結構

public static classBluetoothDevice extends ViewGroup.LayoutParams


JAVA.lang.Object

android.view. ViewGroup.LayoutParams

android.widget.Gallery.LayoutParams

  二、概述

  代表一個遠端藍牙設備。讓你創建一個帶有各自設備的BluetoothDevice或者查詢其皆如名稱、位址、類和連接狀態等資訊。

  對於藍牙硬體位址而言,這個類僅僅是一個瘦包裝器。這個類的物件是不可改變的。這個類上的操作會使用這個用來創建BluetoothDevice類的BluetoothAdapter類執行在遠端藍牙硬體上。

  為了獲得BluetoothDevice,類,使用BluetoothAdapter.getRemoteDevice(String)方法去創建一個表示已知MAC位址的設備(使用者可以通過帶有BluetoothAdapter類來完成對設備的查找)或者從一個通過 BluetoothAdapter.getBondedDevices()得到傳回值的有聯繫的設備集合來得到該設備。

  注意:需要BLUETOOTH許可權

  參見

       BluetoothAdapter

      BluetoothSocket

  三、常量

String ACTION_ACL_CONNECTED

廣播活動:指明一個與遠端設備建立的低級別(ACL)連接。

總是包含EXTRA_DEVICE附加域

ACL連接通過Android藍牙棧自動進行管理

需要BLUETOOTH許可權接收

常量值: "android.bluetooth.device.action.ACL_CONNECTED"


String ACTION_ACL_DISCONNECTED

廣播活動:指明一個來自于遠端設備的低級別(ACL)連接的斷開

總是包含EXTRA_DEVICE附加域

ACL連接通過Android藍牙棧自動進行管理

需要BLUETOOTH許可權接收

常量值: "android.bluetooth.device.action.ACL_DISCONNECTED"


String ACTION_ACL_DISCONNECT_REQUESTED

廣播活動:指明一個為遠端設備提出的低級別(ACL)的斷開連接請求,並即將斷開連接。

對於友好的斷開連接,該常量是有作用的。應用程式可以用它作為暗示去馬上中斷對遠端設備的高級別的連接(RFCOMM,L2CAP,或者其它連接)。

總是包含EXTRA_DEVICE附加域

需要BLUETOOTH許可權接收

常量值: "android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED"


String ACTION_BOND_STATE_CHANGED

廣播活動:指明一個遠端設備的連接狀態的改變。比如,當一個設備已經被匹配。

總是包含EXTRA_DEVICE, EXTRA_BOND_STATE和 EXTRA_PREVIOUS_BOND_STATE.這些附加域。

需要BLUETOOTH許可權接收

常量值: "android.bluetooth.device.action.BOND_STATE_CHANGED"


String ACTION_CLASS_CHANGED

廣播活動:一個已經改變的遠端設備的藍牙類。

總是包含EXTRA_DEVICE和EXTRA_BOND_STATE這些附加域。

需要BLUETOOTH許可權接收

參見

ERROR(BluetoothClass}
/{@link BluetoothClass})

常量值: "android.bluetooth.device.action.CLASS_CHANGED"


String ACTION_FOUND

廣播活動:發現遠端設備

當一個遠端設備在查找過程中被發現時,發送該常量值。

總是包含EXTRA_DEVICE和EXTRA_CLASS這些附加域。如果可用的話,也可包含EXTRA_NAME和/或EXTRA_RSSI這些附加域。

需要BLUETOOTH許可權接收

常量值: "android.bluetooth.device.action.FOUND"


String ACTION_NAME_CHANGED

廣播活動:指明一個遠端設備的昵稱第一次找到,或者自從最後一次找到該昵稱開始已經改變。

總是包含EXTRA_DEVICE和EXTRA_NAME這些附加域

需要BLUETOOTH許可權接收

常量值: "android.bluetooth.device.action.NAME_CHANGED"


int BOND_BONDED

指明遠端設備已經匹配。

一個共用的連接鍵為了遠端設備而存在於本地,因而設備間的通訊可以被認證和加密。

和遠端設備的匹配並不意味著設備間已經成功連接。它只意味著匹配過程已經在稍早之前完成,並且連接鍵已經存儲在本地,準備在下次連接的時候使用。

常量值: 12 (0x0000000c)


int BOND_BONDING

指明和遠端設備的匹配正在進行中

常量值: 11 (0x0000000b)


int BOND_NONE

指明遠端設備未被匹配。

不存在為了遠端設備而已經共用的連接鍵,因而設備間的通訊(如果完全被允許)不可被認證和加密。

常量值: 10 (0x0000000a)


Creator<BluetoothDevice> CREATOR


int ERROR

該類的錯誤標誌值. 標記該類的錯誤值。確保和該類中的任意其它整數常量不相等。它為需要一個標記錯誤值的函數提供了便利。例如:Intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR)

常量值: -2147483648 (0x80000000)


String EXTRA_BOND_STATE

作為一個ACTION_BOND_STATE_CHANGED的整型附加域。包含了遠端設備的匹配狀態。

可能值有: BOND_NONE, BOND_BONDING, BOND_BONDED.

常量值: "android.bluetooth.device.extra.BOND_STATE"


String EXTRA_CLASS

作為一個ACTION_FOUND和ACTION_CLASS_CHANGED的ParcelabeBluetoothClass附加域。

常量值: "android.bluetooth.device.extra.CLASS"


String EXTRA_DEVICE

每次通過該類進行廣播時,作為Parcelable BluetoothDevice的附加域。它包含了該常量適用的BluetoothDevice類。

常量值: "android.bluetooth.device.extra.DEVICE"


String EXTRA_NAME

作為ACTION_NAME_CHANGED和ACTION_FOUND的字串附加域。它包含了這個藍牙昵稱。

常量值: "android.bluetooth.device.extra.NAME"


String EXTRA_PREVIOUS_BOND_STATE

作為ACTION_BOND_STATE_CHANGED的整型附加域。包含了遠端設備以前的匹配狀態。

可能值有: BOND_NONE, BOND_BONDING, BOND_BONDED.

常量值: "android.bluetooth.device.extra.PREVIOUS_BOND_STATE"


String EXTRA_RSSI

作為ACTION_FOUND的可選短整型附加域。包含了被藍牙硬體通知的遠端設備的RSSI(Receive Signal Strength Indication,接收信號強度指示)值。

常量值: "android.bluetooth.device.extra.RSSI"
  四、公共方法  

  publicBluetoothSocketcreateRfcommSocketToServiceRecord(UUID uuid)

該方法是為了使用帶有listenUsingRfcommWithServiceRecord(String, UUID)方法來進行對等的藍牙應用而設計的。

使用connect()初始化這個外界連接。它也將執行一個已給與UUID的SDP查找,從而確定連接到哪個通道上。

遠端設備將被認證,在這個埠上的通訊會被加密。

提示:如果你正試圖連接藍牙串口,那麼使用眾所周知的SPP UUID 00001101-0000-1000-8000-00805F9B34FB。但是你如果正試圖連接Android設備那麼請你生成你自己的專有UUID。

需要BLUETOOTH許可權。

參數

uuid 查詢RFCOMM通道的服務記錄UUID

傳回值

一個準備好外界連接的RFCOMM藍牙服務埠

異常

IOException出現錯誤,比如藍牙模組不可用,或者許可無效。


public int describeContents ()

描述了包含在Parcelable's marshalled representation中的特殊物件的種類。

傳回值

一個指示被Parcelabel所排列的特殊物件類型集合的位遮罩。


public boolean equals (Object o)

比較帶有特定目標的常量。如果他們相等則標示出來。為了保證其相等,o必須代表相同的物件,該物件作為這個使用類依賴比較的常量。通常約定,該比較既需要可複製、相等和可傳遞。另外,沒有物件引用的時候null等於null。

預設實現是返回ture,僅當this == o。如果你想實現你自己的equals方法,參見Writing a correct equals method。

當且僅當o是一個作為接收器(使用==操作符來做比較)的精確相同的物件是,這個物件的實現才返回true值。子類通常實現equals(Object)方法,這樣它才會重視這兩個物件的類型和狀態。

通常約定,對於equals(Object)和hashCode()方法,如果equals對於任意兩個物件返回真值,那麼hashCode()必須對這些物件返回相同的紙。這意味著物件的子類通常都覆蓋或者都不覆蓋這兩個方法。

參數

o 需要對比常量的物件

傳回值

如果指定的物件和該物件相等則返回true,否則返回false。


public StringgetAddress ()

返回該藍牙設備的硬體位址

例如: "00:11:22:AA:BB:CC".

傳回值

字串類型的藍牙硬體位址


public BluetoothClass getBluetoothClass ()

獲取遠端設備的藍牙類

需要BLUETOOTH許可權。

傳回值

藍牙類物件出錯時返回空值


public intgetBondState ()

獲取遠端設備的連接狀態。

連接狀態的可能值有: BOND_NONE, BOND_BONDING, BOND_BONDED.

需要BLUETOOTH許可權。

傳回值

連接狀態。


public String getName ()

獲取遠端設備的藍牙昵稱。

當執行設備掃描的時候,本地配接器將自動尋找遠端名稱。該方法只返回來自儲存體中該設備的名稱。

需要BLUETOOTH許可權。

傳回值

藍牙昵稱,如果出現問題則返回null。


public int hashCode ()

返回該物件的一個整型雜湊值.通常約定,如果equals對於任意兩個物件返回真值,那麼hashCode()必須對這些物件返回相同的值。這意味著物件的子類通常都覆蓋或者都不覆蓋這兩個方法。

注意:除非同等對比資訊發生改變,否則雜湊碼不隨時間改變而改變。

如果你想要實現你自己的雜湊碼方法,參見Writing a correct hashCode method。

傳回值

該物件的雜湊值


public String toString ()

返回該藍牙設備的字串運算式。

這是一個藍牙硬體位址,例如"00:11:22:AA:BB:CC".然而,如果使用者明確需要藍牙硬體位址以防以後toString()運算式會改變的話,使用者總是需要使用getAddress()方法。

傳回值

該藍牙設備的字串運算式。


public void writeToParcel (Parcel out, int flags)

將類的資料寫入外部提供的Parcel中

參數

out物件需要被寫入的Parcel

       flags和物件需要如何被寫入有關的附加標誌。可能是0

arrow
arrow
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()