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
- 首先將QuickBle依賴加入到你的
build.gradle中:
dependencies {
......
compile 'kevinho.lib.dev:quickble:0.1.2'
}
- 在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"/>
- 在
Application的onCreate()方法中對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);
}
}
- 通過
QuickBle.handler()進(jìn)行BLE的操作:
// characteristic read operation
QuickBle.handler().requestCharacteristicRead(..);
// characteristic write operation
QuickBle.handler().requestCharacteristicWrite(...);
// characteristic notify operation
QuickBle.handler().requestCharacteristicNotification(...);
- 注冊
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);
}