前言

  本章内容是  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_DEVICEEXTRA_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_FOUNDACTION_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 (70) —— BluetoothDevice[蓝牙]的更多相关文章

  1. Android 中文API (69) —— BluetoothAdapter[蓝牙]

    前言 本章内容是  android.bluetooth.BluetoothAdapter,为Android蓝牙部分的章节翻译.本地蓝牙设备的适配类,所有的蓝牙操作都要通过该类完成.版本为 Androi ...

  2. Android 中文API (65) —— BluetoothClass[蓝牙]

    前言 本章内容是android.bluetooth.BluetoothClass,为Android蓝牙部分的章节翻译.用于描述远端设备的类型,特点等信息,通过getBluetoothClass()方法 ...

  3. Android 中文API (68) —— BluetoothClass.Service

    前言 本章内容是 android.bluetooth.BluetoothClass.Service,为Android蓝牙部分的章节翻译,版本为 Android 2.3   r1,翻译来自中山大学的&q ...

  4. Android 中文API (67) —— BluetoothClass.Device.Major

    前言 本章内容是android.bluetooth.BluetoothClass.Device.Major,为Android蓝牙部分的章节翻译,版本为Android 2.3   r1,翻译来自中山大学 ...

  5. Android 中文API (66) —— BluetoothClass.Device

    前言 本章内容是android.bluetooth.BluetoothClass.Device,为Android蓝牙部分的章节翻译,版本为Android 2.3   r1,翻译来自中山大学的" ...

  6. Android 中文 API (40) —— RatingBar

    Android 中文 API (40) —— RatingBar 前言 本章内容是 android.widget.RatingBar,译为"评分条",版本为Android 2.2 ...

  7. android中文api(79)——Gallery

    前言 本章内容是 android.widget.Gallery,版本为Android 2.3 r1,翻译来自"henly.zhang",欢迎大家访问他的博客:http://www. ...

  8. Android中文API

    Android中文API http://www.android-doc.com/index.html

  9. android 中文 api (72) —— BluetoothSocket[蓝牙]

    前言 本章内容是   android.bluetooth.BluetoothSocket,为Android蓝牙部分的章节翻译.蓝牙通讯套接字,代表了与远端设备的连接点,使用socket本地程序可以通过 ...

随机推荐

  1. 64bits Python2.7.5安装numpy包

    由于数值分析需要numpy计算包,我找了很多numpy-cp27的下载地址,下了最新版的.whl文件,但总是安装不成功,后来找到一个.exe文件 直接下载安装即可使用:下面是网址链接http://do ...

  2. c++读取文件内容并保存到二维数组

    每行数据最后需要Tab处理 #include <iostream> #include <fstream> #include <string> using names ...

  3. hdu 3397 Sequence operation 线段树

    题目链接 给出n个数, 每个数是0或1, 给5种操作, 区间变为1, 区间变为0, 区间0,1翻转, 询问区间内1的个数, 询问区间内最长连续1的个数. 需要将数组开成二维的, 然后区间0, 1翻转只 ...

  4. [spring+springmvc+mybatis实践]学生社团管理系统

    一.简介 ssm框架为现在十分流行的mvc主流框架.mybatis负责与数据库交互,springmvc与spring完美适配,负责控制器和视图渲染.之前有初步学习过ssm框架,这次借学校里的web课设 ...

  5. c++实现将表达式转换为逆波兰表达式

    https://github.com/Lanying0/lintcode 所属: 数据结构->线性结构->栈 问题: 给定一个表达式字符串数组,返回该表达式的逆波兰表达式(即去掉括号). ...

  6. To the Max(矩阵压缩)

    To the Max Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 20000/10000K (Java/Other) Total Su ...

  7. Android-自己定义显示价格的PriceView

    转载请标明出处:http://blog.csdn.net/goldenfish1919/article/details/44418883 先看一下我们要做的效果: 价格分成了3部分.前面是一个¥,中间 ...

  8. H5 应用程序返回button的js代码设计,设计仿stack

    history.back(); 该代码具有天然的缺陷,二手知道,于H5应用,尤其是模仿移动应用程序时,,这是不够. 在放大期js为了实现类似特征,请轻喷. 不多说,上代码: /** * Created ...

  9. CreateFileMapping使用方法

    CreateFileMapping的MSDN翻译和使用心得   測试创建和打开文件映射的时候老是得到"句柄无效"的错误, 细致看了MSDN以后才发觉是函数认识不透, 这里把相关的解 ...

  10. python 内部函数,以及lambda,filter,map等内置函数

    #!/usr/bin/python #encoding=utf-8 def back(): return 1,2, "xxx" #python 可变参数 def test(*par ...