一. 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)设备

class	BluetoothClass.Device  

作用 : 定义所有设备类的常量;

(2)服务

class	BluetoothClass.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, 对象被写入有关的标识;

BluetoothClass详解的更多相关文章

  1. 【Android 应用开发】BluetoothClass详解

    一. BluetoothClass简介 1. 继承关系 public final class BluetoothClass extends Object implements Parcelable 该 ...

  2. 安卓程序代写 网上程序代写[原]BluetoothClass详解

    一. BluetoothClass简介 1. 继承关系 public final class BluetoothClass extends Object implements Parcelable 该 ...

  3. 【Android 应用开发】BluetoothDevice详解

    一. BluetoothDevice简介 1. 继承关系 public static Class BluetoothDevice extends Object implement Parcelable ...

  4. 安卓程序代写 网上程序代写[原]BluetoothDevice详解

    一. BluetoothDevice简介 1. 继承关系 public static Class BluetoothDevice extends Object implement Parcelable ...

  5. BluetoothDevice详解

    一. BluetoothDevice简介 1. 继承关系 public static Class BluetoothDevice extends Object implement Parcelable ...

  6. Linq之旅:Linq入门详解(Linq to Objects)

    示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...

  7. 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)

    一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...

  8. EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解

    前言 我比较喜欢安静,大概和我喜欢研究和琢磨技术原因相关吧,刚好到了元旦节,这几天可以好好学习下EF Core,同时在项目当中用到EF Core,借此机会给予比较深入的理解,这里我们只讲解和EF 6. ...

  9. Java 字符串格式化详解

    Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...

随机推荐

  1. 全文检索引擎 sphinx-coreseek中文索引

    Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索. Sphinx特别为一些 ...

  2. python django-admin startproject django-admin命令未找到

    在使用pip install安装django后使用django-admin生成项目失败解决办法 1.配置环境变量-在系统环境变量path添加后运行 D:\Program Files (x86)\pyt ...

  3. GitLab 基本操作

    登录 在浏览其中输入http://192.168.3.11:8888 如图1登录界面.   图1 注:第一次新增用户,会发送修改密码链接到用户的邮箱中,用户会收到如图2邮件. 图2 2. 修改密码 点 ...

  4. notpad++ 搭配 gcc

    notpad++ 搭配 gcc GCC 是 GNU 编译器套装的简称(GNU Compiler Collection),一套编程语言编译器,以 GPL 及 LGPL 许可证所发行的自由软件,也是 GN ...

  5. 选择排序,C语言实现

    选择排序是不稳定排序,时间复杂度为O(n^2). 选择排序类似插入排序,把数组分为两部分,一部分已经排好序,一部分未排序. 刚开始的时候所有的元素都未排序,已排序的部分为空.就好像你手里有十张牌,左手 ...

  6. RDO与RLO

    RDO: 平均误差(SSD/SSE).均方误差(MSE).绝对误差和(SAD).峰值信噪比(PSNR) min D subject to R < Rc 拉格朗日优化(λ为拉格朗日乘子): min ...

  7. 20145202马超《网络对抗》Exp9*_* Web安全基础实践

    本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 1.实验后回答问题 (1)SQL注入攻击原理,如何防御 感觉上次做的也是sql注入,就是故意的非法输入(输入的是一些指令)让 ...

  8. C++ STL中的 Set的用法

    https://blog.csdn.net/yas12345678/article/details/52601454 -----源头此处 1.关于set的概念   set   是STL中的集合. 集合 ...

  9. MapWinGIS介绍

    MapWinGIS是一个不错的开源组件GIS项目,基于微软的COM思想编写,团队的开发人员主要来自爱荷华大学,而且开发团队中还有一位中国人.它的功能类似于AO(当然没有AO那么强大),其核心是一个名字 ...

  10. spring-boot日志操作

    SpringBoot Logback日志配置 Logback的配置介绍: 1.Logger.appender及layout Logger作为日志的记录器,把它关联到应用的对应的context上后,主要 ...