安卓程序代写 网上程序代写[原]BluetoothClass详解
一. 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详解的更多相关文章
- (转)iOS应用程序生命周期(前后台切换,应用的各种状态)详解
原文:http://blog.csdn.net/totogo2010/article/details/8048652 iOS应用程序生命周期(前后台切换,应用的各种状态)详解 分类: ...
- 转:iOS应用程序生命周期(前后台切换,应用的各种状态)详解
iOS应用程序生命周期(前后台切换,应用的各种状态)详解 分类: iOS开发进阶2012-10-08 15:35 42691人阅读 评论(30) 收藏 举报 iosapplication任务anima ...
- [转载,感觉写的非常详细]DUBBO配置方式详解
[转载,感觉写的非常详细]DUBBO配置方式详解 原文链接:http://www.cnblogs.com/chanshuyi/p/5144288.html DUBBO 是一个分布式服务框架,致力于提供 ...
- 安卓程序代写 网上程序代写[原]BluetoothDevice详解
一. BluetoothDevice简介 1. 继承关系 public static Class BluetoothDevice extends Object implement Parcelable ...
- 安卓程序代写 网上程序代写[原]BluetoothAdapter解析
这篇文章将会详细解析BluetoothAdapter的详细api, 包括隐藏方法, 每个常量含义. 一 BluetoothAdapter简介 1.继承关系 该类仅继承了Object类; 2.该类作用 ...
- 安卓程序代写 网上程序代写[转]SVN 在线代码托管工具
本文转载自 : http://blog.csdn.net/ithomer/article/details/8142920 作者:阳光岛主 在互联网环境使用SVN服务,你必须要有一台在互联网环境内支持 ...
- 小程序2-基本架构讲解(一)JSON配置与详解
项目里边生成了不同类型的文件: .json 后缀的 JSON 配置文件 .wxml 后缀的 WXML 模板文件 .wxss 后缀的 WXSS 样式文件 .js 后缀的 JS 脚本逻辑文件 JSON 配 ...
- 微信小程序开发教程(八)视图层——.wxml详解
框架的视图层由WXMKL(WeiXin Markup language)与WXSS(WeiXin Style Sheet)编写,由组件进行展示. 对于微信小程序而言,视图层就是所有.wxml文件与.w ...
- 写给大忙人的nginx核心配置详解
由于当前很多应该都是前后端分离了,同时大量的基于http的分布式和微服务架构,使得很多时候应用和不同项目组之间的系统相互来回调用,关系复杂.如果使用传统的做法,都在应用中进行各种处理和判断,不仅维护复 ...
随机推荐
- Java数据结构和算法(四):栈
一.简介 栈(英语:stack)又称为堆栈或堆叠,栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表.它按照先进后出的原则存储数据,先进入的数据被压入栈底(Bottom),最后的数据在 ...
- vue-client脚手架使用
1.必须安装node环境 2.安装vue-client脚手架,在命令提示符中运行npm install -g vue-cli 3.创建项目 vue init 模板名 项目名 例如:vue init w ...
- js函数调用二种常用方法的例子
js中函数调用的两种常用方法. 一个js函数 function test(aa){ window.alert("你输入的是"+aa); } 方法一:直接调用 test(" ...
- 解决sweetalert 无故报错 elem.className.replace Uncaught TypeError: Cannot read property 'className' of null
今天碰到这么一个问题,在使用sweetalert的时候时有时无会报错 elem.className.replace Uncaught TypeError: Cannot read property ' ...
- 【Unity】9.2 如何添加粒子组件
分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 粒子系统是作为组件附加到游戏对象上的,有两种添加办法. 二.方式1--添加已制作好的预制体 第1种方式是直接添加已经制作 ...
- 菜鸟学Java(十九)——WEB项目测试好帮手,Maven+Jetty
做WEB开发,测试是一件很费时间的事情.所以我们就应该用更简单.更快捷的方式进行测试.今天就向大家介绍一个轻量级的容器——jetty.今天说的etty是Maven的一个插件jetty-maven-pl ...
- 使用putty部署远程J2EE环境
以前没弄过,开个帖子记录一下. 基本上要做的就是安装JDK.安装tomcat.安装sql. 1.安装JDK JDK在本机上,需要传输到远程linux服务器上.为了存放我们上传的文件.打开putty,进 ...
- angular学习笔记(三十)-指令(7)-compile和link(2)
继续上一篇:angular学习笔记(三十)-指令(7)-compile和link(1) 上一篇讲了compile函数的基本概念,接下来详细讲解compile和link的执行顺序. 看一段三个指令嵌套的 ...
- git提交本地代码到新分支
背景: 从branchA分支拉了一份代码,做了一些修改,但是不想提交到branchA分支,想新建一个分支branchB保存代码. 操作方法: 添加本地需要提交代码 git add . 提交本地代码 g ...
- opencv项目报错_pFirstBlock==pHead解决办法
备注: 我上次遇到这个问题的原因是项目设置为MTd导致的 OpenCV是MTd的,我要是改成MDd就编译报错,所以不能采用把项目改为MDd的办法,只能把OpenCV重新编译为MDd的,下载CMAKE, ...