【发布时间】:2017-05-31 15:37:08
【问题描述】:
我有这个代码开始扫描 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 设备(具有 Peripheral 角色)时,大约需要 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 的文章很有趣:atmosphere.anaren.com/wiki/…
-
感谢您的维基!我去看看:)
-
此链接无效。有新链接吗?
标签: android bluetooth-lowenergy