前言
本章内容是android.bluetooth.BluetoothClass,为Android蓝牙部分的章节翻译。用于描述远端设备的类型,特点等信息,通过getBluetoothClass()方法获取代表远端设备属性的BluetoothClass对象。版本为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://over140.blog.51cto.com/
Android中文翻译组:http://code.taobao.org/project/view/404/
正文
一、结构
public final class BluetoothClass extends Object implements Parcelable
java.lang.Object
android.bluetooth.BluetoothClass
代表一个描述了设备通用特性和功能的蓝牙类。比如,一个蓝牙类会指定皆如电话、计算机或耳机的通用设备类型,可以提供皆如音频或者电话的服务。
每个蓝牙类都是有0个或更多的服务类,以及一个设备类组成。设备类将被分解成主要和较小的设备类部分。
BluetoothClass
用作一个能粗略描述一个设备(比如关闭用户界面上一个图标的设备)的线索,但当蓝牙服务事实上是被一个设备所支撑的时候,BluetoothClass的 介绍则不那么可信任。精确的服务搜寻通过SDP请求来完成。当运用createRfcommSocketToServiceRecord(UUID)
和listenUsingRfcommWithServiceRecord(String, UUID)
来创建RFCOMM端口的时候,SDP请求就会自动执行。
getBluetoothClass()
方法来获取为远程设备所提供的类。
三、内部类
class BluetoothClass.Device
定义所有设备类的常量
class BluetoothClass.Service
定义所有服务类的常量
四、公共方法
public int describeContents ()
描述包含在可封装编组的表示中所有特殊对象的种类。
返回值
一个指示被Parcelabel所排列的特殊对象类型集合的位掩码。
public boolean equals (Object o)
比较带有特定目标的常量。如果他们相等则标示出来。 为了保证其相等,o必须代表相同的对象,该对象作为这个使用类依赖比较的常量。通常约定,该比较既要可移植又需灵活。
当且仅当o是一个作为接收器(使用==操作符来做比较)的精确相同的对象是,这个对象的实现才返回true值。子类通常实现equals(Object)方法,这样它才会重视这两个对象的类型和状态。
通常约定,对于equals(Object)和hashCode() 方法,如果equals对于任意两个对象返回真值,那么hashCode()必须对这些对象返回相同的纸。这意味着对象的子类通常都覆盖或者都不覆盖这两个方法。
参数
o 需要对比常量的对象
返回值
如果特定的对象和该对象相等则返回true,否则返回false。
public int getDeviceClass ()
返回BluetoothClass
中的设备类部分(主要的和较小的)
从函数中返回的值可以和在BluetoothClass.Device
中的公共常量做比较,从而确定哪个设备类在这个蓝牙类中是被编码的。
返回值
设备类部分
public int getMajorDeviceClass ()
返回BluetoothClass
中设备类的主要部分
从函数中返回的值可以和在BluetoothClass.Device.Major
中的公共常量做比较,从而确定哪个主要类在这个蓝牙类中是被编码的。
返回值
主要设备类部分
public boolean hasService (int service)
如果该指定服务类被BluetoothClass
所支持,则返回true
在BluetoothClass.Service
中,合法的服务类是公共常量,比如AUDIO
类。
参数
service 合法服务类
返回值
如果该服务类可被支持,则返回true
public int hashCode ()
返回这个对象的整型哈希码。按约定,任意两个在equals(Object)
中返回true的对象必须返回相同的哈希码。这意味着对象的子类通常通常覆盖或者都不覆盖这两个方法。
注意:除非同等对比信息发生改变,否则哈希码不随时间改变而改变。
如果你想要实现你自己的哈希码方法,参见Writing a correct hashCode
method。
返回值
该对象的哈希码
public String toString ()
返回这个对象的字符串,该字符串包含精确且可读的介绍。系统鼓励子类去重写该方法,并且提供了能对该对象的类型和数据进行重视的实现方法。默认的实现方法只是简单地把类名、“@“符号和该对象hashCode()方法的16进制数连接起来(如下列所示的表达式):
返回值
该对象中一个可被打印的字符串。
public void writeToParcel (Parcel out, int flags)
将类的数据写入外部提供的Parcel中
参数
out 对象需要被写入的Parcel
flags 和对象需要如何被写入有关的附加标志。可能是0,或者可能是PARCELABLE_WRITE_RETURN_VALUE
。
结束
关于Android蓝牙这篇文章已经有被转载,这里做了整理并简单的审核了一下,补充了少数几处漏翻的部分,再次感谢他们!