【Android 应用开发】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, 對象被寫入有關的標識;
總結
以上是生活随笔為你收集整理的【Android 应用开发】BluetoothClass详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android 应用开发】Blueto
- 下一篇: 【Android 应用开发】自定义Vie