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

作者:han1202012 发表于2013-11-6 22:11:50 原文链接
阅读:58 评论:1 查看评论

安卓程序代写 网上程序代写[原]BluetoothClass详解的更多相关文章

  1. (转)iOS应用程序生命周期(前后台切换,应用的各种状态)详解

    原文:http://blog.csdn.net/totogo2010/article/details/8048652 iOS应用程序生命周期(前后台切换,应用的各种状态)详解         分类:  ...

  2. 转:iOS应用程序生命周期(前后台切换,应用的各种状态)详解

    iOS应用程序生命周期(前后台切换,应用的各种状态)详解 分类: iOS开发进阶2012-10-08 15:35 42691人阅读 评论(30) 收藏 举报 iosapplication任务anima ...

  3. [转载,感觉写的非常详细]DUBBO配置方式详解

    [转载,感觉写的非常详细]DUBBO配置方式详解 原文链接:http://www.cnblogs.com/chanshuyi/p/5144288.html DUBBO 是一个分布式服务框架,致力于提供 ...

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

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

  5. 安卓程序代写 网上程序代写[原]BluetoothAdapter解析

    这篇文章将会详细解析BluetoothAdapter的详细api, 包括隐藏方法, 每个常量含义. 一 BluetoothAdapter简介 1.继承关系 该类仅继承了Object类; 2.该类作用 ...

  6. 安卓程序代写 网上程序代写[转]SVN 在线代码托管工具

    本文转载自 : http://blog.csdn.net/ithomer/article/details/8142920  作者:阳光岛主 在互联网环境使用SVN服务,你必须要有一台在互联网环境内支持 ...

  7. 小程序2-基本架构讲解(一)JSON配置与详解

    项目里边生成了不同类型的文件: .json 后缀的 JSON 配置文件 .wxml 后缀的 WXML 模板文件 .wxss 后缀的 WXSS 样式文件 .js 后缀的 JS 脚本逻辑文件 JSON 配 ...

  8. 微信小程序开发教程(八)视图层——.wxml详解

    框架的视图层由WXMKL(WeiXin Markup language)与WXSS(WeiXin Style Sheet)编写,由组件进行展示. 对于微信小程序而言,视图层就是所有.wxml文件与.w ...

  9. 写给大忙人的nginx核心配置详解

    由于当前很多应该都是前后端分离了,同时大量的基于http的分布式和微服务架构,使得很多时候应用和不同项目组之间的系统相互来回调用,关系复杂.如果使用传统的做法,都在应用中进行各种处理和判断,不仅维护复 ...

随机推荐

  1. js正则表达式实现手机号码,密码正则验证

    手机号码,密码正则验证. 分享下javascript中正则表达式进行的格式验证,常用的有手机号码,密码等. /** * 手机号码 * 移动:134[0-8],135,136,137,138,139,1 ...

  2. 【Unity】6.1 Unity中的C#脚本基础知识

    分类:Unity.C#.VS2015 创建日期:2016-04-16 一.简介 1.常用的C#数据类型 这里简单介绍用Unity开发游戏时,最常用的一些数据类型. (1)基本类型 int.float. ...

  3. sql左右连接测试

    with a as (select 1 as id, 'name1'as nameunionselect 2 as id, 'name2'as nameunionselect 3 as id, 'na ...

  4. 【React Native开发】React Native应用设备执行(Running)以及调试(Debugging)(3)

    ),React Native技术交流4群(458982758),请不要反复加群.欢迎各位大牛,React Native技术爱好者加入交流!同一时候博客左側欢迎微信扫描关注订阅号,移动技术干货,精彩文章 ...

  5. [PY3]——环境配置(1)——pyenv | pip | ipython | jupyter(含安装pyenv环境shell脚本)

    1.关于pyenv (1)pyenv是一个开源的.shell脚本编写的工具:Simple Python version management (2)为什么使用pyenv:当多个项目同时在开发与维护时, ...

  6. python __name__ = '__main__' 的作用

    很多新手刚开始学习python的时候经常会看到python 中__name__ = \'__main__\' 这样的代码,可能很多新手一开始学习的时候都比较疑惑,python 中__name__ = ...

  7. ny24 素数距离的问题 筛选法求素数

    素数距离问题时间限制:3000 ms  |  内存限制:65535 KB难度:2 描述    现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度.如果左右有等距离长度素 ...

  8. (转)Making 1 million requests with python-aiohttp

    转自:https://pawelmhm.github.io/asyncio/python/aiohttp/2016/04/22/asyncio-aiohttp.html Making 1 millio ...

  9. python 三元表达式 if for 构建List 进阶用法

    1.简单的for...[if]...语句 Python中,for...[if]...语句一种简洁的构建List的方法,从for给定的List中选择出满足if条件的元素组成新的List,其中if是可以省 ...

  10. 【转】cocos2d-x动画加速与减速

    移步原帖传送门:cocos2d-x动画加速与减速 动画是游戏的必然要素之一,在整个游戏过程中,又有着加速.减速动画的需求.以塔防为例子,布塔的时候希望能够将游戏减速,布好塔后,则希望能将游戏加速:当某 ...