【Android 应用开发】BluetoothClass详解
来源:互联网 发布:数字低通滤波算法 编辑:程序博客网 时间:2024/06/06 00:32
一. BluetoothClass简介
1. 继承关系
public final class BluetoothClass extends Object implements Parcelable
该类是final类, 不能被继承, 没有子类;
该类继承了Object类, 实现了Parcelable接口;
Parcelable接口 :
Java中的序列化方法 : 在Java中序列化有两种方法, 一种是实现Serializable接口, 一种是实现Parcelable接口, Serializable接口是J2SE固有支持的, Parcelable是Android支持的, 是Android中特有的, 效率比Serializable高;
序列化实现 :
Serializable接口实现 : 只需要声明一下即可;
Parcelable接口实现 :
a. 声明实现的接口Parcelable;
b. 实现writeToParcel接口, 将对象序列化成一个Parcel对象;
c. 实例化内部对象Parcelable.Creator, 注意对象名称必须是"CREATOR", 在这个内部对象中实现createFromParcel()方法, 可以将序列化对象Parcel对象反序列化为源对象;
public static final Parcelable.Creator<T> CREATOR
普通对象->Parcel对象 : 使用writeToParcel()方法;
Parcel对象->普通对象 : 使用createFromParcel()方法;
使用writeToParcel()方法 和 createFromParcel()方法 可以将普通对象与Parcel对象相互进行转化, 因此写入对象的顺序要和读取对象的顺序要保持一致;
Parcel对象读写方法 :
读写变量 :
writeByte( byte ), readByte()//读写byte类型数据writeDouble(double ), readDouble()//读写double类型数据
writeFloat(float ), readFloat()//读写Float类型数据writeInt(int ), readInt()//读写int类型数据writeLong(long ), readLong()//读写long类型数据writeString(String), readString()//读写String类型数据
读写数组 :
writeBooleanArray( boolean []), readBooleanArray( boolean []), createBooleanArray() writeByteArray(byte []), writeByteArray( byte [], int , int ), readByteArray( byte []), createByteArray() writeCharArray(char []), readCharArray( char []), createCharArray() writeDoubleArray(double []), readDoubleArray( double []), createDoubleArray() writeFloatArray(float []), readFloatArray( float []), createFloatArray() writeIntArray(int []), readIntArray( int []), createIntArray() writeLongArray(long []), readLongArray( long []), createLongArray() writeStringArray(String[]), readStringArray(String[]), createStringArray() writeSparseBooleanArray(SparseBooleanArray), readSparseBooleanArray()
2. BluetoothClass介绍
判断类别功能 : BluetoothClass用来描述一个蓝牙设备的通用特性 和功能, 可以根据这个类判断蓝牙的类别, 可以提供音频或者电话服务;
蓝牙类组成 : 0个或者多个服务类, 一个设备类;
低精确度 : BluetoothClass只能粗略描述一个蓝牙设备, 当两个设备连接的时候, 这个类提供的数据不是很准确;
高精确度 : SDP请求搜寻的服务精确度很高, 调用createRfcommSocketToServiceRecord()和listenUsingRfcommWithServiceRecord()方法创建RFCOMM端口的时候会自动调用SDP服务;
二 API解析
1. 内部类
(1)设备
classBluetoothClass.Device作用 : 定义所有设备类的常量;
(2)服务
classBluetoothClass.Service作用 : 定义所有的服务类的常量;
2. 公共方法
(1)描述序列化内容
public int describeContents ()作用 : 描述在Parcel序列化对象中特殊对象的种类;
返回值 : Parcelable排列的特殊对象类型集合的位掩码;
(2)比较方法
public boolean equals (Object o)作用 : 比较两个对象是否相等, 可以重写这个方法;
(3)获取设备内部类
public int getDeviceClass ()
作用 : 返回设备类, 这个设备类可以与BluetoothClass.Device中的常量进行对比, 得到这个设备是什么类型的设备;
返回值 : BluetoothClass的设备类;
(4)获取设备主类
public int getMajorDeviceClass ()作用 : 返回设备的主类, 返回的这个主类可以与 BluetoothClass.Device.Major中的常量比较, 确定这个主类是在那个类型的设备中编码的;
返回值 : 设备的主类;
(5)是否支持服务类
public boolean hasService (int service)作用 : 传入服务类代码, 是否支持服务类;
参数 : 服务类常量, 在BluetoothClass.Service中定义;
返回值 : 如果该服务类可以被支持, 返回true;
(6)获取哈希码
public int hashCode ()作用 : 返回哈希值, 可以被重写;
(7)字符串方法
public int hashCode ()作用 : 建议重写;
(8)数据写入Parcel
public void writeToParcel (Parcel out, int flags)作用 : 将类写入序列化对象中;
参数 : out, 被写入的parcel对象; flags, 对象被写入有关的标识;
- 【Android 应用开发】BluetoothClass详解
- android bluetooth----bluetoothClass.Service
- Android应用开发详解
- Android应用开发详解
- Android应用开发详解
- android bluetooth应用开发详解
- 【Android 应用开发】BluetoothDevice详解
- 【Android 应用开发】BluetoothSocket详解
- 【Android 应用开发】BluetoothServerSocket详解
- Android应用开发--动画详解
- 【Android 应用开发】 Fragment 详解
- Android Web 应用开发详解
- Android 应用开发笔记 - UI开发详解
- 【Android 应用开发】Android - 按钮组件详解
- Android 应用开发详解 热销中
- Android 应用开发详解 热销中
- Android 应用开发详解 热销中
- Android网络开发详解具体应用代码
- Qt 学习之路(tip): parent 参数
- Java 中的泛型与 C++ 模板的比较
- 关于C指针
- js Date
- AndroidManifest.xml文件解析
- 【Android 应用开发】BluetoothClass详解
- Log Explorer for SQL Server工具应用
- Windows XP 安装 OpenCV 2.4.6.0.exe
- java checkstyle检查问题
- Caught exception while loading file struts-default.xml 错误
- Linux下反编译APK获取java代码和资源文件
- IE6/IE7之空元素拥有layout就获得了高度bug
- iOS学习路线图
- 如何快速开始使用Git