(2)远程设备的其它广播常量
String ACTION_BOND_STATE_CHANGED : android.bluetooth.device.action.BOND_STATE_CHANGED, 远程蓝牙设备状态改变的时候发出这个广播, 例如设备被匹配, 或者解除配对; 该广播包含的附加域有 : EXTRA_DEVICE, EXTRA_BOND_STATE, EXTRA_BOND_PREVIOUS_STATE; 需要BLUETOOTH权限;
String ACTION_CLASS_CHANGED : android.bluetooth.device.action.CLASS_CHANGED, 一个远程设备的绑定状态发生改变时发出广播, 该广播附加域有 EXTRA_DEVICE, EXTRA_BOND_STATE; 需要BLUETOOTH权限;
String ACTION_FOUND : android.bluetooth.device.action.FOUND,发现一个远程设备的时候发出该广播; 这个广播总是包含EXTRA_DEVICE, EXTRA_CLASS附加域, 如果这个蓝牙可用的话, 还会包含EXTRA_NAME, EXTRA_RSSI附加域; 需要BLUETOOTH权限;
String ACTION_NAME_CHANGED : android.bluetooth.device.action.NAME_CHANGED,远程蓝牙设备的名称被发现改变 或者 第一次发现远程蓝牙设备的名称的时候发出该广播, 该广播包含附加域 EXTRA_DEVICE , EXTRA_NAME附加域; 需要BLUETOOTH权限;
(3)绑定状态常量
已绑定 : intBOND_BONDED , 值为12; 远程设备已经匹配; 本地存储了一个该远程设备的共享连接, 本地设备和远程设备之间的通信可以被认证和加密; 这个连接不是已经连接成功, 时刻保持连接状态, 这个连接的作用是, 下次连接的时候不用再次建立新的蓝牙连接;
绑定中 : intBOND_BONDING, 值为11; 本地设备与远程设备正在匹配中;
未匹配 : intBOND_NONE, 值为10; 本地设备与远程设备没有连接, 本地不存在与远程设备共享的连接, 设备间的通信不能被认证和加密;
(4)附加域常量
绑定状态 : StringEXTRA_BOND_STATE, int附加域, 值为android.bluetooth.device.extra.BOND_STATE, 这个附加域是ACTION_BOND_STATE_CHANGED的附加域, 可能的值为 BOND_BONDED, BOND_BONDING, BOND_NONE;
上一个绑定状态 : StringACTION_PREVIOUS_BOND_STATE, int附加域, 存放远程设备绑定状态, 值为"android.bluetooth.device.extra.PREVIOUS_BOND_STATE", 该附加域是ACTION_BOND_STATE_CHANGED广播的附加域;
BluetoothClass : StringEXTRA_CLASS, Parcelable BluetoothClass附加域, 存放BluetoothClass对象; 值为android.bluetooth.device.extra.CLASS, 这个附加域是ACTION_FOUND , ACTION_CLASS_CHANGED 广播的附加域;
BluetoothDevice : StringEXTRA_DEVICE, Parcelable BluetoothDevice附加域, 存放BluetoothDevice对象, 值为"android.bluetooth.device.extra.DEVICE", 几乎该类中的每个广播都有该附加域;
蓝牙名称 : StringEXTRA_NAME, 蓝牙名称附加域, 存放蓝牙名称, 值为"android.bluetooth.device.extra.NAME", 这个附加域是ACTION_NAME_CHANGED , ACTION_FOUND广播的附加域;
信号强度 : StringEXTRA_RSSI, 短整型附加域, 存放远程设备信号强度值; 值为"android.bluetooth.device.extra.NAME";
2. 公共方法介绍
(1)封装到Parcel方法
public void writeToParcel (Parcel out, int flags)
作用 : 将对象写出到Parcel对象中, 这是实现的Parcelable接口的方法
参数 : out , 要封装到的目的对象; flags , 对象如何被写入的附加标志;
(2)描述内容
public int describeContents ()
作用 : 实现Parcelable接口;
(2)建立BluetoothSocket连接
public int describeContents ()
作用 : 创建BluetoothSocket连接对象, 该方法创建的BluetoothSocket连接对象与 BluetoothAdapter的listenUsingRfcommWithServiceRecord方法创建的BluetoothServerSocket连接是对应的, 调用BluetoothSocket对象的connect()方法创建一个连接, 通过UUID执行对应信道的SDP查找动作;
如果两个安卓手机之间进行连接需要生成专用的UUID, 如果是对蓝牙串口进行连接, 就使用总所周知的SPP UUID 00001101-0000-1000-8000-00805F9B34FB
参数 : 用来识别远程蓝牙设备的UUID, 该UUID用来查询RFCOMM通道的服务记录;
返回值 : 创建的BluetoothSocket连接对象