Android 蓝牙状态
来源:互联网 发布:人工智能与制造业 ppt 编辑:程序博客网 时间:2024/06/05 20:26
BluetoothDevice类的方法
getBondState 获得的是匹配状态,不是连接状态。
public int getBondState()
Get the bond state of the remote device.
Possible values for the bond state are: BOND_NONE
,BOND_BONDING
,BOND_BONDED
.
public static final int BOND_BONDED
Indicates the remote device is bonded (paired).
A shared link keys exists locally for the remote device, so communication can be authenticated and encrypted.
Being bonded (paired) with a remote device does not necessarily mean the device is currently connected. It just means that the pending procedure was completed at some earlier time, and the link key is still stored locally, ready to use on the next connection.
public static final int BOND_BONDING
Indicates bonding (pairing) is in progress with the remote device.
public static final int BOND_NONE
Indicates the remote device is not bonded (paired).
There is no shared link key with the remote device, so communication (if it is allowed at all) will be unauthenticated and unencrypted.
Android 中文API (70) —— BluetoothDevice[蓝牙]
前言
本章内容是 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://www.cnblogs.com/
Android中文翻译组:http://code.taobao.org/project/view/404/
正文
一、结构
public static class BluetoothDevice extends Object implements Parcelable
java.lang.Object
android.bluetooth.BluetoothDevice
二、概述
代表一个远程蓝牙设备。让你创建一个带有各自设备的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
的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提高第十二篇之蓝牙传感应用
Android提高第十三篇之探秘蓝牙隐藏API
- Android 蓝牙状态
- Android 蓝牙状态获取
- Android监听蓝牙状态
- Android---蓝牙状态值
- 【Android】监听蓝牙状态变化
- android蓝牙电话监听状态
- unity3d 获取蓝牙 状态 android
- android 获取蓝牙各种连接状态
- Android BroadcastReceiver + 蓝牙状态监听Demo
- android蓝牙状态的实时监听
- 蓝牙状态
- 【Android开发 蓝牙连接状态】Android实时检测蓝牙连接状态
- 【Android开发 蓝牙连接状态】Android实时检测蓝牙连接状态
- android蓝牙从开启到关闭的正常状态转变
- Android——蓝牙错误状态码大全
- 【Android】【bluetooth 】如何记住蓝牙地址名字和状态
- android怎么来判断蓝牙开、关的状态
- android模拟器 获取蓝牙的状态值(开/关)
- 内存屏障与JVM并发
- 公司用secureCRT连接家里的Linux,家里用无线路由器,公司有上网代理
- 安装Visual studio 在安装Microsoft .NET Framework 4.0报错
- c#连接PostGreSQL
- 如何使用iOS 开发证书 和 Profile 文件
- Android 蓝牙状态
- mysql配置中的一些重要参数
- 深入理解Android消息处理系统——Looper、Handler、Thread
- postfix邮件系统完整版
- UITabBarController
- Adb connection Error:远程主机强迫关闭了一个现有的连接。
- EXC-BAD-ACCESS当程序崩溃时,我们怎么做?part-02
- VC++6.0调试工具使用初步
- Android Recovery系统分析2----升级包目录结构分析