我的项目涉及蓝牙低功耗。我扫描所有靠近的BLE设备并通过许多不同的图标显示在屏幕上。我没问题。但我想检查扫描不是BLE设备,我会显示一条消息"没有找到BLE设备"。我不知道检查NULL BLE设备。也许你知道!?
这里是我的一些代码:
private BluetoothAdapter mBluetoothAdapter;
final BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
mBluetoothAdapter = bluetoothManager.getAdapter();
mBluetoothAdapter.startLeScan(mLeScanCallback);
private BluetoothAdapter.LeScanCallback mLeScanCallback = new BluetoothAdapter.LeScanCallback() {
@Override
public void onLeScan(final BluetoothDevice arg0, int arg1, byte[] arg2) {
// TODO Auto-generated method stub
runOnUiThread(new Runnable() {
@Override
public void run() {
//TODO add device to screen
});
}
};
答案 0 :(得分:0)
https://developer.android.com/guide/topics/connectivity/bluetooth-le.html#find
根据Android文档,开发人员有责任在一定的时间间隔后停止Le扫描。
在扫描处于活动状态的时间间隔内,您可以跟踪onLeScan回调被触发的次数。如果它甚至没有被触发,则可以在Le Scan停止后显示您想要的任何错误消息。
答案 1 :(得分:0)
简单,请按照以下步骤操作。
1)运行BLE扫描一段时间。您可以使用postDelayed处理程序在一定时间后调用停止LE扫描,假设为10秒。
2)您必须在列表或某处添加找到的设备才能在UI上显示它。你说你正在为不同的设备显示不同的图标。
3)要检查您的进程dint是否找到任何设备,您可以检查图标集或设备列表大小。如果它为零,那么你就会找到任何东西。
或者您可以使用一些布尔标志,您可以在onLeScan方法中启用(true),这样您就会知道至少有一次调用它。
快乐编码。