我有這個代碼開始掃描BLE裝置:是否有可能減少掃描BLE設備的時間?
Log.i("timeChar", "Begin");
customBluetoothManager.scanLeDevice(true);
然後scanLeDevice()被調用,管理藍牙適配器開始BLE掃描:
public void scanLeDevice(final boolean enable) {
mHandler = new Handler();
if (enable) {
// Stops scanning after a pre-defined scan period.
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
mBluetoothAdapter.stopLeScan(mLeScanCallback);
}
}, SCAN_PERIOD);
mBluetoothAdapter.startLeScan(mLeScanCallback);
} else {
mBluetoothAdapter.stopLeScan(mLeScanCallback);
}
}
而現在,回調爲每個設備是通過掃描發現:
// Device scan callback.
private BluetoothAdapter.LeScanCallback mLeScanCallback =
new BluetoothAdapter.LeScanCallback() {
@Override
public void onLeScan(final BluetoothDevice device, int rssi,
byte[] scanRecord) {
String name = device.getName();
if (name != null && name.compareTo(bluetoothDeviceName) == 0) {
Log.i("timeChar", "Device found");
}
}
};
每一次,我要去掃描我的BLE裝置(具有外設角色),它TA kes大約11秒才能檢測到它...
05-31 17:32:39.139 27545-9668/app I/timeChar: Begin
05-31 17:32:50.149 27545-27545/app I/timeChar: Device found
有什麼辦法可以減少這個時間嗎?
雖然自我宣傳我發現這篇文章有趣的關於BLE:https://atmosphere.anaren.com/wiki/Android_Issues_With_Bluetooth_Low_Energy –
謝謝那個wiki!我會看一看 :) – adri1992