Android 中文API (70) —— BluetoothDevice[蓝牙]
2010-12-21 11:53
441 查看
前言
本章内容是android.bluetooth.BluetoothDevice,为Android蓝牙部分的章节翻译。蓝牙设备类,代表了蓝牙通讯国足中的远端设备。版本为Android2.3r1,翻译来自中山大学的"AndroidClubSYSU",欢迎访问他们的WIKI:http://www.android-wiki.net,再次感谢"AndroidClubSYSU"!期待你一起参与Android中文API的翻译,联系我over140@gmail.com。
声明
欢迎转载,但请保留文章原始出处:)
AndroidClubSYSU:http://www.android-wiki.net
博客园:http://www.cnblogs.com/
Android中文翻译组:http://code.taobao.org/project/view/404/
正文
一、结构
publicstaticclassBluetoothDeviceextendsObject[b]implementsParcelable[/b]
java.lang.Object
android.bluetooth.BluetoothDevice
二、概述
代表一个远程蓝牙设备。让你创建一个带有各自设备的BluetoothDevice或者查询其皆如名称、地址、类和连接状态等信息。
对于蓝牙硬件地址而言,这个类仅仅是一个瘦包装器。这个类的对象是不可改变的。这个类上的操作会使用这个用来创建BluetoothDevice类的BluetoothAdapter类执行在远程蓝牙硬件上。
为了获得BluetoothDevice,类,使用BluetoothAdapter.getRemoteDevice(String)方法去创建一个表示已知MAC地址的设备(用户可以通过带有BluetoothAdapter类来完成对设备的查找)或者从一个通过BluetoothAdapter.getBondedDevices()得到返回值的有联系的设备集合来得到该设备。
注意:需要
参见
BluetoothAdapter
BluetoothSocket
三、常量
StringACTION_ACL_CONNECTED
广播活动:指明一个与远程设备建立的低级别(ACL)连接。
总是包含
ACL连接通过Android蓝牙栈自动进行管理
需要
常量值:"android.bluetooth.device.action.ACL_CONNECTED"
StringACTION_ACL_DISCONNECTED
广播活动:指明一个来自于远程设备的低级别(ACL)连接的断开
总是包含
ACL连接通过Android蓝牙栈自动进行管理
需要
常量值:"android.bluetooth.device.action.ACL_DISCONNECTED"
StringACTION_ACL_DISCONNECT_REQUESTED
广播活动:指明一个为远程设备提出的低级别(ACL)的断开连接请求,并即将断开连接。
对于友好的断开连接,该常量是有作用的。应用程序可以用它作为暗示去马上中断对远程设备的高级别的连接(RFCOMM,L2CAP,或者其它连接)。
总是包含
需要
常量值:"android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED"
StringACTION_BOND_STATE_CHANGED
广播活动:指明一个远程设备的连接状态的改变。比如,当一个设备已经被匹配。
总是包含EXTRA_DEVICE,EXTRA_BOND_STATE和EXTRA_PREVIOUS_BOND_STATE.这些附加域。
需要
常量值:"android.bluetooth.device.action.BOND_STATE_CHANGED"
StringACTION_CLASS_CHANGED
广播活动:一个已经改变的远程设备的蓝牙类。
总是包含EXTRA_DEVICE和EXTRA_BOND_STATE这些附加域。
需要
常量值:"android.bluetooth.device.action.CLASS_CHANGED"
StringACTION_FOUND
广播活动:发现远程设备
当一个远程设备在查找过程中被发现时,发送该常量值。
总是包含
需要
常量值:"android.bluetooth.device.action.FOUND"
StringACTION_NAME_CHANGED
广播活动:指明一个远程设备的昵称第一次找到,或者自从最后一次找到该昵称开始已经改变。
总是包含EXTRA_DEVICE和EXTRA_NAME这些附加域
需要
常量值:"android.bluetooth.device.action.NAME_CHANGED"
intBOND_BONDED
指明远程设备已经匹配。
一个共享的连接键为了远程设备而存在于本地,因而设备间的通讯可以被认证和加密。
和远程设备的匹配并不意味着设备间已经成功连接。它只意味着匹配过程已经在稍早之前完成,并且连接键已经存储在本地,准备在下次连接的时候使用。
常量值:12(0x0000000c)
intBOND_BONDING
指明和远程设备的匹配正在进行中
常量值:11(0x0000000b)
intBOND_NONE
指明远程设备未被匹配。
不存在为了远程设备而已经共享的连接键,因而设备间的通讯(如果完全被允许)不可被认证和加密。
常量值:10(0x0000000a)
Creator<BluetoothDevice>CREATOR
intERROR
该类的错误标志值.标记该类的错误值。确保和该类中的任意其它整数常量不相等。它为需要一个标记错误值的函数提供了便利。例如:Intent.getIntExtra(BluetoothAdapter.EXTRA_STATE,BluetoothAdapter.ERROR)
常量值:-2147483648(0x80000000)
StringEXTRA_BOND_STATE
作为一个
可能值有:BOND_NONE,BOND_BONDING,BOND_BONDED.
常量值:"android.bluetooth.device.extra.BOND_STATE"
StringEXTRA_CLASS
作为一个
常量值:"android.bluetooth.device.extra.CLASS"
StringEXTRA_DEVICE
每次通过该类进行广播时,作为ParcelableBluetoothDevice的附加域。它包含了该常量适用的BluetoothDevice类。
常量值:"android.bluetooth.device.extra.DEVICE"
StringEXTRA_NAME
作为ACTION_NAME_CHANGED和ACTION_FOUND的字符串附加域。它包含了这个蓝牙昵称。
常量值:"android.bluetooth.device.extra.NAME"
StringEXTRA_PREVIOUS_BOND_STATE
作为ACTION_BOND_STATE_CHANGED的整型附加域。包含了远程设备以前的匹配状态。
可能值有:BOND_NONE,BOND_BONDING,BOND_BONDED.
常量值:"android.bluetooth.device.extra.PREVIOUS_BOND_STATE"
StringEXTRA_RSSI
作为ACTION_FOUND的可选短整型附加域。包含了被蓝牙硬件通知的远程设备的RSSI(ReceiveSignalStrengthIndication,接收信号强度指示)值。
常量值:"android.bluetooth.device.extra.RSSI"
四、公共方法
publicBluetoothSocketcreateRfcommSocketToServiceRecord(UUIDuuid)
该方法是为了使用带有listenUsingRfcommWithServiceRecord(String,UUID)方法来进行对等的蓝牙应用而设计的。
使用connect()初始化这个外界连接。它也将执行一个已给与UUID的SDP查找,从而确定连接到哪个通道上。
远程设备将被认证,在这个端口上的通讯会被加密。
提示:如果你正试图连接蓝牙串口,那么使用众所周知的SPPUUID00001101-0000-1000-8000-00805F9B34FB。但是你如果正试图连接Android设备那么请你生成你自己的专有UUID。
需要
参数
uuid查询RFCOMM通道的服务记录UUID
返回值
一个准备好外界连接的RFCOMM蓝牙服务端口
异常
IOException出现错误,比如蓝牙模块不可用,或者许可无效。
publicintdescribeContents()
描述了包含在Parcelable'smarshalledrepresentation中的特殊对象的种类。
返回值
一个指示被Parcelabel所排列的特殊对象类型集合的位屏蔽。
publicbooleanequals(Objecto)
比较带有特定目标的常量。如果他们相等则标示出来。为了保证其相等,o必须代表相同的对象,该对象作为这个使用类依赖比较的常量。通常约定,该比较既需要可复制、相等和可传递。另外,没有对象引用的时候null等于null。
默认实现是返回ture,仅当this==o。如果你想实现你自己的Writingacorrect
当且仅当o是一个作为接收器(使用==操作符来做比较)的精确相同的对象是,这个对象的实现才返回true值。子类通常实现equals(Object)方法,这样它才会重视这两个对象的类型和状态。
通常约定,对于equals(Object)和hashCode()方法,如果equals对于任意两个对象返回真值,那么hashCode()必须对这些对象返回相同的纸。这意味着对象的子类通常都覆盖或者都不覆盖这两个方法。
参数
o需要对比常量的对象
返回值
如果指定的对象和该对象相等则返回true,否则返回false。
publicStringgetAddress()
返回该蓝牙设备的硬件地址
例如:"00:11:22:AA:BB:CC".
返回值
字符串类型的蓝牙硬件地址
publicBluetoothClassgetBluetoothClass()
获取远程设备的蓝牙类
需要
返回值
蓝牙类对象出错时返回空值
publicintgetBondState()
获取远程设备的连接状态。
连接状态的可能值有:BOND_NONE,BOND_BONDING,BOND_BONDED.
需要
返回值
连接状态。
publicStringgetName()
获取远程设备的蓝牙昵称。
当执行设备扫描的时候,本地适配器将自动寻找远程名称。该方法只返回来自存储器中该设备的名称。
需要
返回值
蓝牙昵称,如果出现问题则返回null。
publicinthashCode()
返回该对象的一个整型哈希值.通常约定,如果equals对于任意两个对象返回真值,那么hashCode()必须对这些对象返回相同的值。这意味着对象的子类通常都覆盖或者都不覆盖这两个方法。
注意:除非同等对比信息发生改变,否则哈希码不随时间改变而改变。
如果你想要实现你自己的哈希码方法,参见Writingacorrect
返回值
该对象的哈希值
publicStringtoString()
返回该蓝牙设备的字符串表达式。
这是一个蓝牙硬件地址,例如"00:11:22:AA:BB:CC".然而,如果用户明确需要蓝牙硬件地址以防以后
返回值
该蓝牙设备的字符串表达式。
publicvoidwriteToParcel(Parcelout,intflags)
将类的数据写入外部提供的Parcel中
参数
out对象需要被写入的Parcel
flags和对象需要如何被写入有关的附加标志。可能是0,或者可能是 五、补充
文章精选
Android提高第十二篇之蓝牙传感应用
Android提高第十三篇之探秘蓝牙隐藏API
本章内容是android.bluetooth.BluetoothDevice,为Android蓝牙部分的章节翻译。蓝牙设备类,代表了蓝牙通讯国足中的远端设备。版本为Android2.3r1,翻译来自中山大学的"AndroidClubSYSU",欢迎访问他们的WIKI:
声明
欢迎转载,但请保留文章原始出处:)
AndroidClubSYSU:
博客园:
Android中文翻译组:
正文
一、结构
publicstaticclassBluetoothDeviceextendsObject[b]implementsParcelable[/b]
java.lang.Object
android.bluetooth.BluetoothDevice
二、概述
代表一个远程蓝牙设备。让你创建一个带有各自设备的BluetoothDevice或者查询其皆如名称、地址、类和连接状态等信息。
对于蓝牙硬件地址而言,这个类仅仅是一个瘦包装器。这个类的对象是不可改变的。这个类上的操作会使用这个用来创建BluetoothDevice类的BluetoothAdapter类执行在远程蓝牙硬件上。
为了获得BluetoothDevice,类,使用BluetoothAdapter.getRemoteDevice(String)方法去创建一个表示已知MAC地址的设备(用户可以通过带有BluetoothAdapter类来完成对设备的查找)或者从一个通过BluetoothAdapter.getBondedDevices()得到返回值的有联系的设备集合来得到该设备。
注意:需要
权限BLUETOOTH
参见
三、常量
StringACTION_ACL_CONNECTED
广播活动:指明一个与远程设备建立的低级别(ACL)连接。
总是包含
附加域EXTRA_DEVICE
ACL连接通过Android蓝牙栈自动进行管理
需要
BLUETOOTH
权限接收
常量值:"android.bluetooth.device.action.ACL_CONNECTED"
StringACTION_ACL_DISCONNECTED
广播活动:指明一个来自于远程设备的低级别(ACL)连接的断开
总是包含
附加域EXTRA_DEVICE
ACL连接通过Android蓝牙栈自动进行管理
需要
BLUETOOTH
权限接收
常量值:"android.bluetooth.device.action.ACL_DISCONNECTED"
StringACTION_ACL_DISCONNECT_REQUESTED
广播活动:指明一个为远程设备提出的低级别(ACL)的断开连接请求,并即将断开连接。
对于友好的断开连接,该常量是有作用的。应用程序可以用它作为暗示去马上中断对远程设备的高级别的连接(RFCOMM,L2CAP,或者其它连接)。
总是包含
附加域EXTRA_DEVICE
需要
BLUETOOTH
权限接收
常量值:"android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED"
StringACTION_BOND_STATE_CHANGED
广播活动:指明一个远程设备的连接状态的改变。比如,当一个设备已经被匹配。
总是包含EXTRA_DEVICE,EXTRA_BOND_STATE和EXTRA_PREVIOUS_BOND_STATE.这些附加域。
需要
BLUETOOTH
权限接收
常量值:"android.bluetooth.device.action.BOND_STATE_CHANGED"
StringACTION_CLASS_CHANGED
广播活动:一个已经改变的远程设备的蓝牙类。
总是包含EXTRA_DEVICE和EXTRA_BOND_STATE这些附加域。
需要
BLUETOOTH
权限接收
参见
ERROR(BluetoothClass}/{@linkBluetoothClass})
常量值:"android.bluetooth.device.action.CLASS_CHANGED"
StringACTION_FOUND
广播活动:发现远程设备
当一个远程设备在查找过程中被发现时,发送该常量值。
总是包含
和EXTRA_DEVICE
这些附加域。如果可用的话,也可包含EXTRA_CLASS
和/或EXTRA_NAME
这些附加域。EXTRA_RSSI
需要
BLUETOOTH
权限接收
常量值:"android.bluetooth.device.action.FOUND"
StringACTION_NAME_CHANGED
广播活动:指明一个远程设备的昵称第一次找到,或者自从最后一次找到该昵称开始已经改变。
总是包含EXTRA_DEVICE和EXTRA_NAME这些附加域
需要
BLUETOOTH
权限接收
常量值:"android.bluetooth.device.action.NAME_CHANGED"
intBOND_BONDED
指明远程设备已经匹配。
一个共享的连接键为了远程设备而存在于本地,因而设备间的通讯可以被认证和加密。
和远程设备的匹配并不意味着设备间已经成功连接。它只意味着匹配过程已经在稍早之前完成,并且连接键已经存储在本地,准备在下次连接的时候使用。
常量值:12(0x0000000c)
intBOND_BONDING
指明和远程设备的匹配正在进行中
常量值:11(0x0000000b)
intBOND_NONE
指明远程设备未被匹配。
不存在为了远程设备而已经共享的连接键,因而设备间的通讯(如果完全被允许)不可被认证和加密。
常量值:10(0x0000000a)
Creator<BluetoothDevice>CREATOR
intERROR
该类的错误标志值.标记该类的错误值。确保和该类中的任意其它整数常量不相等。它为需要一个标记错误值的函数提供了便利。例如:Intent.getIntExtra(BluetoothAdapter.EXTRA_STATE,BluetoothAdapter.ERROR)
常量值:-2147483648(0x80000000)
StringEXTRA_BOND_STATE
作为一个
的整型附加域。包含了远程设备的匹配状态。ACTION_BOND_STATE_CHANGED
可能值有:BOND_NONE,BOND_BONDING,BOND_BONDED.
常量值:"android.bluetooth.device.extra.BOND_STATE"
StringEXTRA_CLASS
作为一个
和ACTION_FOUND
的ParcelabeACTION_CLASS_CHANGED
附加域。BluetoothClass
常量值:"android.bluetooth.device.extra.CLASS"
StringEXTRA_DEVICE
每次通过该类进行广播时,作为ParcelableBluetoothDevice的附加域。它包含了该常量适用的BluetoothDevice类。
常量值:"android.bluetooth.device.extra.DEVICE"
StringEXTRA_NAME
作为ACTION_NAME_CHANGED和ACTION_FOUND的字符串附加域。它包含了这个蓝牙昵称。
常量值:"android.bluetooth.device.extra.NAME"
StringEXTRA_PREVIOUS_BOND_STATE
作为ACTION_BOND_STATE_CHANGED的整型附加域。包含了远程设备以前的匹配状态。
可能值有:BOND_NONE,BOND_BONDING,BOND_BONDED.
常量值:"android.bluetooth.device.extra.PREVIOUS_BOND_STATE"
StringEXTRA_RSSI
作为ACTION_FOUND的可选短整型附加域。包含了被蓝牙硬件通知的远程设备的RSSI(ReceiveSignalStrengthIndication,接收信号强度指示)值。
常量值:"android.bluetooth.device.extra.RSSI"
四、公共方法
publicBluetoothSocketcreateRfcommSocketToServiceRecord(UUIDuuid)
该方法是为了使用带有listenUsingRfcommWithServiceRecord(String,UUID)方法来进行对等的蓝牙应用而设计的。
使用connect()初始化这个外界连接。它也将执行一个已给与UUID的SDP查找,从而确定连接到哪个通道上。
远程设备将被认证,在这个端口上的通讯会被加密。
提示:如果你正试图连接蓝牙串口,那么使用众所周知的SPPUUID00001101-0000-1000-8000-00805F9B34FB。但是你如果正试图连接Android设备那么请你生成你自己的专有UUID。
需要
权限。BLUETOOTH
参数
uuid查询RFCOMM通道的服务记录UUID
返回值
一个准备好外界连接的RFCOMM蓝牙服务端口
异常
IOException出现错误,比如蓝牙模块不可用,或者许可无效。
publicintdescribeContents()
描述了包含在Parcelable'smarshalledrepresentation中的特殊对象的种类。
返回值
一个指示被Parcelabel所排列的特殊对象类型集合的位屏蔽。
publicbooleanequals(Objecto)
比较带有特定目标的常量。如果他们相等则标示出来。为了保证其相等,o必须代表相同的对象,该对象作为这个使用类依赖比较的常量。通常约定,该比较既需要可复制、相等和可传递。另外,没有对象引用的时候null等于null。
默认实现是返回ture,仅当this==o。如果你想实现你自己的
equals
方法,
参见
equalsmethod。
当且仅当o是一个作为接收器(使用==操作符来做比较)的精确相同的对象是,这个对象的实现才返回true值。子类通常实现equals(Object)方法,这样它才会重视这两个对象的类型和状态。
通常约定,对于equals(Object)和hashCode()方法,如果equals对于任意两个对象返回真值,那么hashCode()必须对这些对象返回相同的纸。这意味着对象的子类通常都覆盖或者都不覆盖这两个方法。
参数
o需要对比常量的对象
返回值
如果指定的对象和该对象相等则返回true,否则返回false。
publicStringgetAddress()
返回该蓝牙设备的硬件地址
例如:"00:11:22:AA:BB:CC".
返回值
字符串类型的蓝牙硬件地址
publicBluetoothClassgetBluetoothClass()
获取远程设备的蓝牙类
需要
权限。BLUETOOTH
返回值
蓝牙类对象出错时返回空值
publicintgetBondState()
获取远程设备的连接状态。
连接状态的可能值有:BOND_NONE,BOND_BONDING,BOND_BONDED.
需要
权限。BLUETOOTH
返回值
连接状态。
publicStringgetName()
获取远程设备的蓝牙昵称。
当执行设备扫描的时候,本地适配器将自动寻找远程名称。该方法只返回来自存储器中该设备的名称。
需要
权限。BLUETOOTH
返回值
蓝牙昵称,如果出现问题则返回null。
publicinthashCode()
返回该对象的一个整型哈希值.通常约定,如果equals对于任意两个对象返回真值,那么hashCode()必须对这些对象返回相同的值。这意味着对象的子类通常都覆盖或者都不覆盖这两个方法。
注意:除非同等对比信息发生改变,否则哈希码不随时间改变而改变。
如果你想要实现你自己的哈希码方法,参见
hashCodemethod。
返回值
该对象的哈希值
publicStringtoString()
返回该蓝牙设备的字符串表达式。
这是一个蓝牙硬件地址,例如"00:11:22:AA:BB:CC".然而,如果用户明确需要蓝牙硬件地址以防以后
表达式会改变的话,用户总是需要使用toString()
方法。getAddress()
返回值
该蓝牙设备的字符串表达式。
publicvoidwriteToParcel(Parcelout,intflags)
将类的数据写入外部提供的Parcel中
参数
out对象需要被写入的Parcel
flags和对象需要如何被写入有关的附加标志。可能是0,或者可能是 五、补充
文章精选
相关文章推荐
- Android 中文API (70) —— BluetoothDevice[蓝牙]
- Android 中文API (70) —— BluetoothDevice[蓝牙]
- Android 中文API (70) —— BluetoothDevice[蓝牙]
- android 中文 api (72) —— BluetoothSocket[蓝牙]
- Android 中文API (66) —— BluetoothClass.Device
- android 中文 api (71) —— BluetoothServerSocket[蓝牙]
- Android 中文API (66) —— BluetoothClass.Device
- android 中文 api (72) —— BluetoothSocket[蓝牙]
- Android 中文API (67) —— BluetoothClass.Device.Major
- android 中文 api (72) —— BluetoothSocket[蓝牙]
- Android 中文API (67) —— BluetoothClass.Device.Major
- Android 中文API (65) —— BluetoothClass[蓝牙]
- Android 中文API (66) —— BluetoothClass.Device
- Android 标准蓝牙 BluetoothDevice API
- Android 中文API (69) —— BluetoothAdapter[蓝牙]
- 《Android 中文API (69) —— BluetoothAdapter[蓝牙]》
- Android 中文API (67) —— BluetoothClass.Device.Major
- Android 中文API (69) —— BluetoothAdapter[蓝牙]
- Android 中文API (69) —— BluetoothAdapter[蓝牙]
- Android 中文API (65) —— BluetoothClass[蓝牙]