Android 標準藍牙 BluetoothDevice API

      網友投稿 983 2022-05-30

      轉自 http://www.iteedu.com/handset/android/androidcnapi5/23.php

      一、結構

      import android.bluetooth.BluetoothDevice public static class BluetoothDevice extends Object implements Parcelable { …… }

      1

      2

      3

      4

      二、概述

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

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

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

      注意:需要BLUETOOTH權限

      1

      2

      3

      三、常量

      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權限接收

      參見

      Android 標準藍牙 BluetoothDevice API

      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)

      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的Parcelabe BluetoothClass附加域。

      常量值: “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”

      四、公共方法

      public BluetoothSocketcreateRfcommSocketToServiceRecord (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 String getAddress ()

      返回該藍牙設備的硬件地址

      例如: “00:11:22:AA:BB:CC”.

      返回值

      字符串類型的藍牙硬件地址

      public BluetoothClass getBluetoothClass ()

      獲取遠程設備的藍牙類

      需要BLUETOOTH權限。

      返回值

      藍牙類對象出錯時返回空值

      public int getBondState ()

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

      連接狀態的可能值有: 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,或者其它。

      Android API

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:針對阿片類藥物使用障礙的藥物重定位
      下一篇:NVIDIA顯卡硬件技術交流整理
      相關文章
      久久久无码精品亚洲日韩京东传媒 | 亚洲无码一区二区三区| 亚洲一区二区三区AV无码| 亚洲AV无码一区二区三区性色| 亚洲欧美日韩中文无线码| 在线综合亚洲欧洲综合网站| 亚洲区精品久久一区二区三区| 亚洲人成影院在线| 亚洲精品无码不卡| 久久亚洲精品中文字幕无码| 亚洲国产精品无码专区影院| 亚洲精品成人网站在线观看 | 国产啪亚洲国产精品无码| 亚洲国产综合精品中文字幕| 亚洲精品成人在线| 国产亚洲精品拍拍拍拍拍| 国产美女亚洲精品久久久综合| 亚洲日韩精品一区二区三区| 久久久青草青青亚洲国产免观| 久久精品7亚洲午夜a| 亚洲色图视频在线观看| 精品亚洲成A人无码成A在线观看| 国产亚洲sss在线播放| 亚洲美国产亚洲AV| 男人的天堂亚洲一区二区三区| 亚洲AV成人片色在线观看| 亚洲bt加勒比一区二区| 久久亚洲精品成人AV| 久久国产亚洲精品无码| 亚洲国产成人综合| 亚洲中文字幕久久精品无码VA| 亚洲一线产品二线产品| 亚洲码欧美码一区二区三区| 亚洲AV无码一区二区三区国产| 亚洲人妻av伦理| 亚洲成av人片天堂网| 久久国产亚洲精品无码| 在线亚洲高清揄拍自拍一品区| 久久精品国产亚洲av瑜伽| MM131亚洲国产美女久久| 亚洲va久久久噜噜噜久久 |