【Android 应用开发】BluetoothClass详解
一. BluetoothClass簡(jiǎn)介
1. 繼承關(guān)系
public final class BluetoothClass extends Object implements Parcelable
該類是final類, 不能被繼承, 沒(méi)有子類;
該類繼承了Object類, 實(shí)現(xiàn)了Parcelable接口;
Parcelable接口 :?
Java中的序列化方法 : 在Java中序列化有兩種方法, 一種是實(shí)現(xiàn)Serializable接口, 一種是實(shí)現(xiàn)Parcelable接口, Serializable接口是J2SE固有支持的, Parcelable是Android支持的, 是Android中特有的, 效率比Serializable高;
序列化實(shí)現(xiàn) :?
Serializable接口實(shí)現(xiàn) : 只需要聲明一下即可;
Parcelable接口實(shí)現(xiàn) :?
a. 聲明實(shí)現(xiàn)的接口Parcelable;
b. 實(shí)現(xiàn)writeToParcel接口, 將對(duì)象序列化成一個(gè)Parcel對(duì)象;
c. 實(shí)例化內(nèi)部對(duì)象Parcelable.Creator, 注意對(duì)象名稱必須是"CREATOR", 在這個(gè)內(nèi)部對(duì)象中實(shí)現(xiàn)createFromParcel()方法, 可以將序列化對(duì)象Parcel對(duì)象反序列化為源對(duì)象;?
public static final Parcelable.Creator<T> CREATOR
普通對(duì)象->Parcel對(duì)象 : 使用writeToParcel()方法;
Parcel對(duì)象->普通對(duì)象 : 使用createFromParcel()方法;
使用writeToParcel()方法 和 createFromParcel()方法 可以將普通對(duì)象與Parcel對(duì)象相互進(jìn)行轉(zhuǎn)化, 因此寫入對(duì)象的順序要和讀取對(duì)象的順序要保持一致;
Parcel對(duì)象讀寫方法 :?
讀寫變量 :?
writeByte( byte ), readByte()//讀寫byte類型數(shù)據(jù) writeDouble(double ), readDouble()//讀寫double類型數(shù)據(jù) writeFloat(float ), readFloat()//讀寫Float類型數(shù)據(jù) writeInt(int ), readInt()//讀寫int類型數(shù)據(jù) writeLong(long ), readLong()//讀寫long類型數(shù)據(jù) writeString(String), readString()//讀寫String類型數(shù)據(jù)讀寫數(shù)組 :
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用來(lái)描述一個(gè)藍(lán)牙設(shè)備的通用特性 和功能, 可以根據(jù)這個(gè)類判斷藍(lán)牙的類別, 可以提供音頻或者電話服務(wù);
藍(lán)牙類組成 : 0個(gè)或者多個(gè)服務(wù)類, 一個(gè)設(shè)備類;
低精確度 : BluetoothClass只能粗略描述一個(gè)藍(lán)牙設(shè)備, 當(dāng)兩個(gè)設(shè)備連接的時(shí)候, 這個(gè)類提供的數(shù)據(jù)不是很準(zhǔn)確;?
高精確度 : SDP請(qǐng)求搜尋的服務(wù)精確度很高, 調(diào)用createRfcommSocketToServiceRecord()和listenUsingRfcommWithServiceRecord()方法創(chuàng)建RFCOMM端口的時(shí)候會(huì)自動(dòng)調(diào)用SDP服務(wù);
二 API解析
1. 內(nèi)部類
(1)設(shè)備
class BluetoothClass.Device 作用 : 定義所有 設(shè)備類的常量;
(2)服務(wù)
class BluetoothClass.Service作用 : 定義所有的 服務(wù)類的常量;
2. 公共方法
(1)描述序列化內(nèi)容
public int describeContents ()作用 : 描述在Parcel序列化對(duì)象中特殊對(duì)象的種類;返回值 : Parcelable排列的特殊對(duì)象類型集合的位掩碼;
(2)比較方法
public boolean equals (Object o)作用 : 比較兩個(gè)對(duì)象是否相等, 可以重寫這個(gè)方法;
(3)獲取設(shè)備內(nèi)部類
public int getDeviceClass ()
作用 : 返回設(shè)備類, 這個(gè)設(shè)備類可以與BluetoothClass.Device中的常量進(jìn)行對(duì)比, 得到這個(gè)設(shè)備是什么類型的設(shè)備;
返回值 : BluetoothClass的設(shè)備類;?
(4)獲取設(shè)備主類
public int getMajorDeviceClass ()作用 : 返回設(shè)備的主類, 返回的這個(gè)主類可以與 BluetoothClass.Device.Major中的常量比較, 確定這個(gè)主類是在那個(gè)類型的設(shè)備中編碼的;
返回值 : 設(shè)備的主類;
(5)是否支持服務(wù)類
public boolean hasService (int service)作用 : 傳入服務(wù)類代碼, 是否支持服務(wù)類;?
參數(shù) : 服務(wù)類常量, 在BluetoothClass.Service中定義;
返回值 : 如果該服務(wù)類可以被支持, 返回true;
(6)獲取哈希碼
public int hashCode ()作用 : 返回哈希值, 可以被重寫;
(7)字符串方法
public int hashCode ()作用 : 建議重寫;
(8)數(shù)據(jù)寫入Parcel
public void writeToParcel (Parcel out, int flags) 作用 : 將類寫入序列化對(duì)象中;參數(shù) : out, 被寫入的parcel對(duì)象; flags, 對(duì)象被寫入有關(guān)的標(biāo)識(shí);
總結(jié)
以上是生活随笔為你收集整理的【Android 应用开发】BluetoothClass详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【Android 应用开发】Blueto
- 下一篇: android sina oauth2.