Most visited

Recently visited

Added in API level 5

BluetoothDevice

public final class BluetoothDevice
extends Object implements Parcelable

java.lang.Object
   ↳ android.bluetooth.BluetoothDevice


代表远程蓝牙设备。 A BluetoothDevice可让您创建与相应设备的连接或查询其相关信息,例如名称,地址,类别和绑定状态。

这个类实际上只是一个蓝牙硬件地址的简单包装。 这个类的对象是不可变的。 这一类操作是在远程蓝牙硬件地址进行,使用BluetoothAdapter这是用于创建此BluetoothDevice

要获得BluetoothDevice ,请使用BluetoothAdapter.getRemoteDevice(String)创建一个代表已知MAC地址的设备(可通过BluetoothAdapter获得设备发现),或者从BluetoothAdapter.getBondedDevices()返回的一组绑定设备中获取一个。 然后,您可以打开一个BluetoothSocket通讯与远程设备,使用createRfcommSocketToServiceRecord(UUID)

注意:需要 BLUETOOTH权限。

Developer Guides

有关使用蓝牙的更多信息,请阅读 Bluetooth开发人员指南。

也可以看看:

Summary

Constants

String ACTION_ACL_CONNECTED

广播操作:表示与远程设备建立了低级别(ACL)连接。

String ACTION_ACL_DISCONNECTED

广播操作:表示从远程设备断开低级别(ACL)连接。

String ACTION_ACL_DISCONNECT_REQUESTED

广播操作:表示远程设备已经请求了低级别(ACL)断开连接,并且它很快就会断开连接。

String ACTION_BOND_STATE_CHANGED

广播动作:指示远程设备的绑定状态发生变化。

String ACTION_CLASS_CHANGED

广播动作:远程设备的蓝牙类已更改。

String ACTION_FOUND

广播动作:发现远程设备。

String ACTION_NAME_CHANGED

广播动作:指示首次检索到远程设备的友好名称,或自上次检索后更改。

String ACTION_PAIRING_REQUEST

广播动作:这个意图用于广播对等请求

需要 BLUETOOTH_ADMIN才能收到。

String ACTION_UUID

广播动作:这个意图是用来广播 UUID包装成 ParcelUuid后的远程设备。

int BOND_BONDED

表示远程设备已绑定(配对)。

int BOND_BONDING

表示正在与远程设备进行绑定(配对)。

int BOND_NONE

表示远程设备未绑定(配对)。

int DEVICE_TYPE_CLASSIC

蓝牙设备类型,Classic - BR / EDR设备

int DEVICE_TYPE_DUAL

蓝牙设备类型,双模式 - BR / EDR / LE

int DEVICE_TYPE_LE

蓝牙设备类型,低能耗 - LE-only

int DEVICE_TYPE_UNKNOWN

蓝牙设备类型,未知

int ERROR

这个类的Sentinel错误值。

String EXTRA_BOND_STATE

ACTION_BOND_STATE_CHANGED意图中用作int外部字段。

String EXTRA_CLASS

用作 ACTION_FOUNDACTION_CLASS_CHANGED意图中的 ACTION_FOUND BluetoothClass额外字段。

String EXTRA_DEVICE

在此类中广播的每个意图中用作 BluetoothDevice额外字段。

String EXTRA_NAME

用作 ACTION_NAME_CHANGEDACTION_FOUND意图中的字符串额外字段。

String EXTRA_PAIRING_KEY

用作 ACTION_PAIRING_REQUEST意图中的int extra字段作为密码的值。

String EXTRA_PAIRING_VARIANT

ACTION_PAIRING_REQUEST意图中用作int外部字段以指示使用的配对方法。

String EXTRA_PREVIOUS_BOND_STATE

ACTION_BOND_STATE_CHANGED意图中用作int外部字段。

String EXTRA_RSSI

ACTION_FOUND意图中用作可选的短额外字段。

String EXTRA_UUID

在作为一个额外的领域 ACTION_UUID意图,包含 ParcelUuid S上的遥控装置,该装置的parcelable版本 UUID

int PAIRING_VARIANT_PASSKEY_CONFIRMATION

系统将提示用户确认屏幕上显示的密码,或者应用程序将确认用户的密码。

int PAIRING_VARIANT_PIN

系统会提示用户输入一个PIN码或一个应用程序将为用户输入一个PIN码。

int TRANSPORT_AUTO

GATT与远程双模设备的连接不需要物理传输

int TRANSPORT_BREDR

优先将BR / EDR传输用于GATT连接到远程双模设备

int TRANSPORT_LE

将GATT连接的LE传输优先选择到远程双模设备

Inherited constants

From interface android.os.Parcelable

Fields

public static final Creator<BluetoothDevice> CREATOR

Public methods

BluetoothGatt connectGatt(Context context, boolean autoConnect, BluetoothGattCallback callback)

连接到由此设备托管的GATT服务器。

BluetoothGatt connectGatt(Context context, boolean autoConnect, BluetoothGattCallback callback, int transport)

连接到由此设备托管的GATT服务器。

boolean createBond()

开始与远程设备的绑定(配对)过程。

BluetoothSocket createInsecureRfcommSocketToServiceRecord(UUID uuid)

使用 BluetoothSocket查找uuid,创建一个RFCOMM BluetoothSocket套接字准备启动到此远程设备的不安全传出连接。

BluetoothSocket createRfcommSocketToServiceRecord(UUID uuid)

创建一个RFCOMM BluetoothSocket准备好使用uuid的SDP查找启动到此远程设备的安全传出连接。

int describeContents()

描述此Parcelable实例的封送表示中包含的特殊对象的种类。

boolean equals(Object o)

指示其他某个对象是否“等于”这一个。

boolean fetchUuidsWithSdp()

在远程设备上执行服务发现以获取支持的UUID。

String getAddress()

返回此BluetoothDevice的硬件地址。

BluetoothClass getBluetoothClass()

获取远程设备的蓝牙类。

int getBondState()

获取远程设备的绑定状态。

String getName()

获取远程设备的友好蓝牙名称。

int getType()

获取远程设备的蓝牙设备类型。

ParcelUuid[] getUuids()

返回远程设备的支持功能(UUID)。

int hashCode()

返回对象的哈希码值。

boolean setPairingConfirmation(boolean confirm)

确认 PAIRING_VARIANT_PASSKEY_CONFIRMATION配对的密码。

boolean setPin(byte[] pin)

在配对方法为 PAIRING_VARIANT_PIN时,在配对期间设置引脚

需要 BLUETOOTH_ADMIN

String toString()

返回此BluetoothDevice的字符串表示形式。

void writeToParcel(Parcel out, int flags)

将此对象平铺到一个包裹中。

Inherited methods

From class java.lang.Object
From interface android.os.Parcelable

Constants

ACTION_ACL_CONNECTED

Added in API level 5
String ACTION_ACL_CONNECTED

广播操作:表示与远程设备建立了低级别(ACL)连接。

总是包含额外的字段 EXTRA_DEVICE

ACL连接由Android蓝牙堆栈自动管理。

需要 BLUETOOTH才能收到。

常量值:“android.bluetooth.device.action.ACL_CONNECTED”

ACTION_ACL_DISCONNECTED

Added in API level 5
String ACTION_ACL_DISCONNECTED

广播操作:表示从远程设备断开低级别(ACL)连接。

始终包含额外的字段 EXTRA_DEVICE

ACL连接由Android蓝牙堆栈自动管理。

需要 BLUETOOTH才能收到。

常量值:“android.bluetooth.device.action.ACL_DISCONNECTED”

ACTION_ACL_DISCONNECT_REQUESTED

Added in API level 5
String ACTION_ACL_DISCONNECT_REQUESTED

广播操作:表示远程设备已经请求了低级别(ACL)断开连接,并且它很快就会断开连接。

这对于优雅的断开很有用。 应用程序应将此意图作为提示立即终止到远程设备的更高级别连接(RFCOMM,L2CAP或配置文件连接)。

始终包含额外的字段 EXTRA_DEVICE

需要 BLUETOOTH才能收到。

常量值:“android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED”

ACTION_BOND_STATE_CHANGED

Added in API level 5
String ACTION_BOND_STATE_CHANGED

广播动作:指示远程设备的绑定状态发生变化。 例如,如果设备被绑定(配对)。

总是包含额外的字段 EXTRA_DEVICEEXTRA_BOND_STATEEXTRA_PREVIOUS_BOND_STATE

需要 BLUETOOTH才能收到。

常量值:“android.bluetooth.device.action.BOND_STATE_CHANGED”

ACTION_CLASS_CHANGED

Added in API level 5
String ACTION_CLASS_CHANGED

广播动作:远程设备的蓝牙类已更改。

始终包含额外的字段 EXTRA_DEVICEEXTRA_CLASS

需要 BLUETOOTH才能收到。

也可以看看:

常量值:“android.bluetooth.device.action.CLASS_CHANGED”

ACTION_FOUND

Added in API level 5
String ACTION_FOUND

广播动作:发现远程设备。

在发现过程中发现远程设备时发送。

始终包含额外的字段EXTRA_DEVICEEXTRA_CLASS 如果可用,可以包含额外的字段EXTRA_NAME和/或EXTRA_RSSI

需要 BLUETOOTHACCESS_COARSE_LOCATION才能接收。

常量值:“android.bluetooth.device.action.FOUND”

ACTION_NAME_CHANGED

Added in API level 5
String ACTION_NAME_CHANGED

广播动作:指示首次检索到远程设备的友好名称,或自上次检索后更改。

始终包含额外的字段 EXTRA_DEVICEEXTRA_NAME

需要 BLUETOOTH才能收到。

常量值:“android.bluetooth.device.action.NAME_CHANGED”

ACTION_PAIRING_REQUEST

Added in API level 19
String ACTION_PAIRING_REQUEST

广播动作:这个意图用于广播对等请求

需要 BLUETOOTH_ADMIN才能收到。

常量值:“android.bluetooth.device.action.PAIRING_REQUEST”

ACTION_UUID

Added in API level 15
String ACTION_UUID

广播动作:这个意图用于广播ParcelUuid ,在远程设备被取出后,广播UUID 只有在请求使用服务发现协议提取远程设备的UUID时,才会发送此意向

始终包含额外的字段 EXTRA_DEVICE

总是包含额外的字段 EXTRA_UUID

需要 BLUETOOTH才能收到。

常量值:“android.bluetooth.device.action.UUID”

BOND_BONDED

Added in API level 5
int BOND_BONDED

表示远程设备已绑定(配对)。

远程设备本地存在共享链接密钥,因此可以对通信进行身份验证和加密。

与远程设备绑定(配对)并不一定意味着设备当前已连接。 这意味着挂起的过程在某个更早的时间完成,并且链接键仍保存在本地,准备在下一个连接上使用。

常量值:12(0x0000000c)

BOND_BONDING

Added in API level 5
int BOND_BONDING

表示正在与远程设备进行绑定(配对)。

常量值:11(0x0000000b)

BOND_NONE

Added in API level 5
int BOND_NONE

表示远程设备未绑定(配对)。

没有与远程设备的共享链接密钥,因此通信(如果允许的话)将是未经验证的并且是未加密的。

常量值:10(0x0000000a)

DEVICE_TYPE_CLASSIC

Added in API level 18
int DEVICE_TYPE_CLASSIC

蓝牙设备类型,Classic - BR / EDR设备

常数值:1(0x00000001)

DEVICE_TYPE_DUAL

Added in API level 18
int DEVICE_TYPE_DUAL

蓝牙设备类型,双模式 - BR / EDR / LE

常量值:3(0x00000003)

DEVICE_TYPE_LE

Added in API level 18
int DEVICE_TYPE_LE

蓝牙设备类型,低能耗 - LE-only

常量值:2(0x00000002)

DEVICE_TYPE_UNKNOWN

Added in API level 18
int DEVICE_TYPE_UNKNOWN

蓝牙设备类型,未知

常量值:0(0x00000000)

ERROR

Added in API level 5
int ERROR

这个类的Sentinel错误值。 保证在这个类中不等于任何其他整数常量。 为便于需要标记错误值的函数提供,例如:

Intent.getIntExtra(BluetoothDevice.EXTRA_BOND_STATE, BluetoothDevice.ERROR)

常量值:-2147483648(0x80000000)

EXTRA_BOND_STATE

Added in API level 5
String EXTRA_BOND_STATE

ACTION_BOND_STATE_CHANGED意图中用作int外部字段。 包含远程设备的绑定状态。

可能的值有: BOND_NONEBOND_BONDINGBOND_BONDED

常量值:“android.bluetooth.device.extra.BOND_STATE”

EXTRA_CLASS

Added in API level 5
String EXTRA_CLASS

ACTION_FOUNDACTION_CLASS_CHANGED意图中 ACTION_FOUND ACTION_CLASS_CHANGED BluetoothClass额外字段。

常量值:“android.bluetooth.device.extra.CLASS”

EXTRA_DEVICE

Added in API level 5
String EXTRA_DEVICE

在此类中广播的每个意图中用作BluetoothDevice额外字段。 它包含意图适用的BluetoothDevice

常量值:“android.bluetooth.device.extra.DEVICE”

EXTRA_NAME

Added in API level 5
String EXTRA_NAME

用作ACTION_NAME_CHANGEDACTION_FOUND意图中的字符串额外字段。 它包含友好的蓝牙名称。

常量值:“android.bluetooth.device.extra.NAME”

EXTRA_PAIRING_KEY

Added in API level 19
String EXTRA_PAIRING_KEY

用作 ACTION_PAIRING_REQUEST意图中的int外部字段作为密码的值。

常量值:“android.bluetooth.device.extra.PAIRING_KEY”

EXTRA_PAIRING_VARIANT

Added in API level 19
String EXTRA_PAIRING_VARIANT

ACTION_PAIRING_REQUEST意图中用作int extra字段以指示使用的配对方法。 可能的值有: PAIRING_VARIANT_PINPAIRING_VARIANT_PASSKEY_CONFIRMATION

常量值:“android.bluetooth.device.extra.PAIRING_VARIANT”

EXTRA_PREVIOUS_BOND_STATE

Added in API level 5
String EXTRA_PREVIOUS_BOND_STATE

ACTION_BOND_STATE_CHANGED意图中用作int外部字段。 包含远程设备的前一个绑定状态。

可能的值有: BOND_NONEBOND_BONDINGBOND_BONDED

常量值:“android.bluetooth.device.extra.PREVIOUS_BOND_STATE”

EXTRA_RSSI

Added in API level 5
String EXTRA_RSSI

ACTION_FOUND意图中用作可选的短额外字段。 包含蓝牙硬件报告的远程设备的RSSI值。

常量值:“android.bluetooth.device.extra.RSSI”

EXTRA_UUID

Added in API level 15
String EXTRA_UUID

在作为一个额外的领域 ACTION_UUID意图,包含 ParcelUuid S上的遥控装置,该装置的parcelable版本 UUID

常量值:“android.bluetooth.device.extra.UUID”

PAIRING_VARIANT_PASSKEY_CONFIRMATION

Added in API level 19
int PAIRING_VARIANT_PASSKEY_CONFIRMATION

系统将提示用户确认屏幕上显示的密码,或者应用程序将确认用户的密码。

常量值:2(0x00000002)

PAIRING_VARIANT_PIN

Added in API level 19
int PAIRING_VARIANT_PIN

系统会提示用户输入一个PIN码或一个应用程序将为用户输入一个PIN码。

常量值:0(0x00000000)

TRANSPORT_AUTO

Added in API level 23
int TRANSPORT_AUTO

GATT与远程双模设备的连接不需要物理传输

常量值:0(0x00000000)

TRANSPORT_BREDR

Added in API level 23
int TRANSPORT_BREDR

优先将BR / EDR传输用于GATT连接到远程双模设备

常数值:1(0x00000001)

TRANSPORT_LE

Added in API level 23
int TRANSPORT_LE

将GATT连接的LE传输优先选择到远程双模设备

常量值:2(0x00000002)

Fields

CREATOR

Added in API level 5
Creator<BluetoothDevice> CREATOR

Public methods

connectGatt

Added in API level 18
BluetoothGatt connectGatt (Context context, 
                boolean autoConnect, 
                BluetoothGattCallback callback)

连接到由此设备托管的GATT服务器。 来电者充当GATT客户端。 该回调用于将结果传递给呼叫者,例如连接状态以及任何其他GATT客户端操作。 该方法返回一个BluetoothGatt实例。 您可以使用BluetoothGatt进行GATT客户端操作。

Parameters
context Context
autoConnect boolean: Whether to directly connect to the remote device (false) or to automatically connect as soon as the remote device becomes available (true).
callback BluetoothGattCallback: GATT callback handler that will receive asynchronous callbacks.
Returns
BluetoothGatt
Throws
IllegalArgumentException if callback is null

connectGatt

Added in API level 23
BluetoothGatt connectGatt (Context context, 
                boolean autoConnect, 
                BluetoothGattCallback callback, 
                int transport)

连接到由此设备托管的GATT服务器。 来电者充当GATT客户端。 该回调用于将结果传递给呼叫者,例如连接状态以及任何其他GATT客户端操作。 该方法返回一个BluetoothGatt实例。 您可以使用BluetoothGatt进行GATT客户端操作。

Parameters
context Context
autoConnect boolean: Whether to directly connect to the remote device (false) or to automatically connect as soon as the remote device becomes available (true).
callback BluetoothGattCallback: GATT callback handler that will receive asynchronous callbacks.
transport int: preferred transport for GATT connections to remote dual-mode devices TRANSPORT_AUTO or TRANSPORT_BREDR or TRANSPORT_LE
Returns
BluetoothGatt
Throws
IllegalArgumentException if callback is null

createBond

Added in API level 19
boolean createBond ()

开始与远程设备的绑定(配对)过程。

这是一个异步调用,它会立即返回。 注册获得ACTION_BOND_STATE_CHANGED意图,当绑定过程完成时及时通知其结果。

Android系统服务将处理必要的用户交互以确认并完成绑定过程。

需要 BLUETOOTH_ADMIN

Returns
boolean false on immediate error, true if bonding will begin

createInsecureRfcommSocketToServiceRecord

Added in API level 10
BluetoothSocket createInsecureRfcommSocketToServiceRecord (UUID uuid)

使用 BluetoothSocket查找uuid,创建一个RFCOMM BluetoothSocket套接字,以准备启动到此远程设备的不安全传出连接。

通信渠道将不会有认证的链接密钥,即它将受到中间人攻击。 对于蓝牙2.1设备,链路密钥将被加密,因为加密是强制性的。 对于传统设备(预蓝牙2.1设备),链路密钥将不会被加密。 如果需要加密和认证的通信信道,请使用createRfcommSocketToServiceRecord(UUID)

它旨在与 listenUsingInsecureRfcommWithServiceRecord(String, UUID)用于对等蓝牙应用。

使用connect()启动传出连接。 这也将执行给定uuid的SDP查找以确定连接到哪个通道。

远程设备将被认证,并且该套接字上的通信将被加密。

提示:如果要连接到蓝牙串行板,请尝试使用着名的SPP UUID 00001101-0000-1000-8000-00805F9B34FB。 但是,如果您要连接到Android对等方,请生成您自己的唯一UUID。

需要 BLUETOOTH

Parameters
uuid UUID: service record uuid to lookup RFCOMM channel
Returns
BluetoothSocket a RFCOMM BluetoothServerSocket ready for an outgoing connection
Throws
IOException on error, for example Bluetooth not available, or insufficient permissions

createRfcommSocketToServiceRecord

Added in API level 5
BluetoothSocket createRfcommSocketToServiceRecord (UUID uuid)

创建一个RFCOMM BluetoothSocket准备使用 BluetoothSocket查找uuid来启动到此远程设备的安全传出连接。

这是为与对等蓝牙应用程序 listenUsingRfcommWithServiceRecord(String, UUID)配合使用而设计的。

使用connect()启动传出连接。 这也将执行给定uuid的SDP查找以确定连接到哪个通道。

远程设备将被认证,并且该套接字上的通信将被加密。

只有经过身份验证的套接字链接才可以使用此套接字。 认证是指认证链路密钥以防止中间人攻击。 例如,对于蓝牙2.1设备,如果任何设备没有输入和输出功能,或者只能显示数字键,则不可能使用安全套接字连接。 在这种情况下,请使用{#link createInsecureRfcommSocketToServiceRecord}。 有关更多详细信息,请参阅蓝牙核心规范版本2.1 + EDR的安全模型部分5.2(第3卷)。

提示:如果要连接到蓝牙串行板,请尝试使用着名的SPP UUID 00001101-0000-1000-8000-00805F9B34FB。 但是,如果您要连接到Android对等方,请生成您自己的唯一UUID。

需要 BLUETOOTH

Parameters
uuid UUID: service record uuid to lookup RFCOMM channel
Returns
BluetoothSocket a RFCOMM BluetoothServerSocket ready for an outgoing connection
Throws
IOException on error, for example Bluetooth not available, or insufficient permissions

describeContents

Added in API level 5
int describeContents ()

描述此Parcelable实例的封送表示中包含的特殊对象的种类。 例如,如果对象将在writeToParcel(Parcel, int)的输出中包含writeToParcel(Parcel, int) ,则此方法的返回值必须包含CONTENTS_FILE_DESCRIPTOR位。

Returns
int a bitmask indicating the set of special object types marshaled by this Parcelable object instance.

equals

Added in API level 5
boolean equals (Object o)

指示其他某个对象是否“等于”这一个。

equals方法在非空对象引用上实现等价关系:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.

Objectequals方法实现了对象上最可能的等价关系; 也就是说,对于任何非空参考值xy ,当且仅当xy指向同一对象( x == y的值为true )时,此方法返回true

请注意,无论何时覆盖此方法,通常都需要覆盖 hashCode方法,以维护 hashCode方法的一般合同,该方法声明相等对象必须具有相同的哈希代码。

Parameters
o Object: the reference object with which to compare.
Returns
boolean true if this object is the same as the obj argument; false otherwise.

fetchUuidsWithSdp

Added in API level 15
boolean fetchUuidsWithSdp ()

在远程设备上执行服务发现以获取支持的UUID。

这个API是异步的,并且ACTION_UUID意图被发送,远程端支持UUID。 如果在获取SDP记录时出现错误,或者该过程需要很长时间,则ACTION_UUID意图将与当前存在于缓存中的UUID一起发送。 如果不执行服务发现,客户端应该使用getUuids()来获取UUID。

需要 BLUETOOTH

Returns
boolean False if the sanity check fails, True if the process of initiating an ACL connection to the remote device was started.

getAddress

Added in API level 5
String getAddress ()

返回此BluetoothDevice的硬件地址。

例如,“00:11:22:AA:BB:CC”。

Returns
String Bluetooth hardware address as string

getBluetoothClass

Added in API level 5
BluetoothClass getBluetoothClass ()

获取远程设备的蓝牙类。

需要 BLUETOOTH

Returns
BluetoothClass Bluetooth class object, or null on error

getBondState

Added in API level 5
int getBondState ()

获取远程设备的绑定状态。

为债券型状态可能的值是: BOND_NONEBOND_BONDINGBOND_BONDED

需要 BLUETOOTH

Returns
int the bond state

getName

Added in API level 5
String getName ()

获取远程设备的友好蓝牙名称。

执行设备扫描时,本地适配器将自动检索远程名称,并将缓存它们。 此方法仅从缓存中返回此设备的名称。

需要 BLUETOOTH

Returns
String the Bluetooth name, or null if there was a problem.

getType

Added in API level 18
int getType ()

获取远程设备的蓝牙设备类型。

需要 BLUETOOTH

Returns
int the device type DEVICE_TYPE_CLASSIC, DEVICE_TYPE_LE DEVICE_TYPE_DUAL. DEVICE_TYPE_UNKNOWN if it's not available

getUuids

Added in API level 15
ParcelUuid[] getUuids ()

返回远程设备的支持功能(UUID)。

此方法不启动服务发现过程以从远程设备检索UUID。 而是返回服务UUID的本地缓存副本。

如果需要新的UUID,请使用 fetchUuidsWithSdp()

需要 BLUETOOTH

Returns
ParcelUuid[] the supported features (UUIDs) of the remote device, or null on error

hashCode

Added in API level 5
int hashCode ()

返回对象的哈希码值。 为了散列表的好处而支持此方法,例如由HashMap提供的HashMap

hashCode的总合同是:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
  • If two objects are equal according to the equals(Object) method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the equals(java.lang.Object) method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.

尽可能合理实用,类Object定义的hashCode方法确实为不同的对象返回不同的整数。 (这通常通过将对象的内部地址转换为整数来实现,但Java TM编程语言不需要此实现技术。)

Returns
int a hash code value for this object.

setPairingConfirmation

Added in API level 19
boolean setPairingConfirmation (boolean confirm)

确认 PAIRING_VARIANT_PASSKEY_CONFIRMATION配对的密码。

需要 BLUETOOTH_ADMIN

Parameters
confirm boolean
Returns
boolean true confirmation has been sent out false for error

setPin

Added in API level 19
boolean setPin (byte[] pin)

在配对方法为 PAIRING_VARIANT_PIN时,在配对期间设置引脚

需要 BLUETOOTH_ADMIN

Parameters
pin byte
Returns
boolean true pin has been set false for error

toString

Added in API level 5
String toString ()

返回此BluetoothDevice的字符串表示形式。

目前这是蓝牙硬件地址,例如“00:11:22:AA:BB:CC”。 但是,如果明确需要蓝牙硬件地址,则应始终使用getAddress() ,以防toString()表示将来发生更改。

Returns
String string representation of this BluetoothDevice

writeToParcel

Added in API level 5
void writeToParcel (Parcel out, 
                int flags)

将此对象平铺到一个包裹中。

Parameters
out Parcel: The Parcel in which the object should be written.
flags int: Additional flags about how the object should be written. May be 0 or PARCELABLE_WRITE_RETURN_VALUE.

Hooray!