Android BLE 庫分享

QuickBle

github地址:https://github.com/kevinhqf/QuickBle
QuickBle 是一個Android BLE的擴(kuò)展庫,可以對BLE進(jìn)行快速便捷的操作。

QuickBle 使用了 Jasonchenlijian的FastBle 作為BLE操作庫.

由于BLE操作是異步的,但每一次的操作請求都必須等待前一次的請求返回才能繼續(xù)進(jìn)行,這樣導(dǎo)致了效率的下降。

通過使用QuickBle,可以同一時間對BLE外設(shè)發(fā)起不同的多個GATT讀寫請求,而不需要等待前一個請求返回后再進(jìn)行下一個請求。
QuickBle 會將每一個請求放入到請求隊列中,并且按順序的從隊列中取出請求進(jìn)行處理。BLE操作響應(yīng)的
回調(diào)結(jié)果同樣也會通過回調(diào)返回給調(diào)用者,調(diào)用者只需進(jìn)行BleCallback的監(jiān)聽注冊即可。

Usage

  1. 首先將QuickBle依賴加入到你的build.gradle中:
dependencies {
    ......
    compile 'kevinho.lib.dev:quickble:0.1.2'
}
  1. 在AndroidManifest中添加藍(lán)牙所需權(quán)限:
    <uses-permission android:name="android.permission.BLUETOOTH"/>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
    <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
  1. ApplicationonCreate()方法中對QuickBle進(jìn)行初始化:
public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
       QuickBle.Config config =  new QuickBle.Config(this)
                        .isFilter(true)
                        .maxConnection(7)
                        .timeout(5000);
        QuickBle.instance().init(config);
    }
}
  1. 通過QuickBle.handler()進(jìn)行BLE的操作:
// characteristic read operation 
QuickBle.handler().requestCharacteristicRead(..);
  
// characteristic write operation 
QuickBle.handler().requestCharacteristicWrite(...);
  
// characteristic notify operation 
QuickBle.handler().requestCharacteristicNotification(...);
  1. 注冊BleCallback對BLE請求操作的回調(diào)數(shù)據(jù)進(jìn)行處理:
    BleCallback mBleCallback = new BleCallback() {...};
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ....
        QuickBle.registerCallback(mBleCallback);
    }
    
    
     @Override
     protected void onDestroy() {
        super.onDestroy();
        QuickBle.unregisterCallback(mBleCallback);
     }
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容