Bluetooth 蓝牙LE扫描过滤器MAC地址通常不适用于所有列表
我的应用程序扫描蓝牙设备。我想通过MAC地址列表过滤扫描。三星S7安卓8.0始终运行良好 但我对其他设备有问题,比如小米安卓8和荣誉安卓7。 当我开始扫描时,我通常无法在过滤器中列出所有蓝牙设备。 停止/启动扫描:有时我只得到一个MAC地址。 停止/开始扫描:然后我得到所有。 停止/开始扫描:然后我只得到一个和第三个 请问问题出在哪里? 如果写入筛选器失败,我希望在调用startscan时出错。 或者是否可以冲洗或重置过滤器Bluetooth 蓝牙LE扫描过滤器MAC地址通常不适用于所有列表,bluetooth,bluetooth-lowenergy,beacon,altbeacon,Bluetooth,Bluetooth Lowenergy,Beacon,Altbeacon,我的应用程序扫描蓝牙设备。我想通过MAC地址列表过滤扫描。三星S7安卓8.0始终运行良好 但我对其他设备有问题,比如小米安卓8和荣誉安卓7。 当我开始扫描时,我通常无法在过滤器中列出所有蓝牙设备。 停止/启动扫描:有时我只得到一个MAC地址。 停止/开始扫描:然后我得到所有。 停止/开始扫描:然后我只得到一个和第三个 请问问题出在哪里? 如果写入筛选器失败,我希望在调用startscan时出错。 或者是否可以冲洗或重置过滤器 BluetoothManager manager = (Bluetoo
BluetoothManager manager = (BluetoothManager) getSystemService(BLUETOOTH_SERVICE);
mBluetoothLeScanner = manager.getAdapter().getBluetoothLeScanner();
ArrayList<ScanFilter> filters = new ArrayList<ScanFilter>();
ScanSettings settings = new ScanSettings.Builder()
.setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
.build();
String[] filterlist = {
"AA:AA:AA:AA:AA:AA",
"BB:BB:BB:BB:BB:BB",
"CC:CC:CC:CC:CC:CC",
};
for (int i=0; i< filterlist.length ; i++) {
ScanFilter filter = new ScanFilter.Builder().setDeviceAddress(filterlist[i]).build();
filters.add(filter);
Log.v("Filter: "," "+ filters.get(i).getDeviceAddress());
}
Log.d(TAG, "filters" + filters );
mBluetoothLeScanner.startScan(filters, settings, mLeScanCallback);
BluetoothManager=(BluetoothManager)getSystemService(蓝牙_服务);
mBluetoothLeScanner=manager.getAdapter().getBluetoothLeScanner();
ArrayList过滤器=新的ArrayList();
ScanSettings=new ScanSettings.Builder()
.setScanMode(扫描设置.SCAN\u模式\u低延迟)
.build();
字符串[]过滤器列表={
“AA:AA:AA:AA:AA:AA:AA”,
“BB:BB:BB:BB:BB:BB:BB”,
“抄送:抄送:抄送:抄送:,
};
for(int i=0;i
你能告诉我如何停止和重新启动扫描吗?它在服务内部,开始是我在上一篇文章中所说的:mbluetotherlescanner.startScan(过滤器、设置、mLeScanCallback);和stop,也在服务内部:mBluetoothLeScanner.stopScan(mLeScanCallback);为了完成我的上一篇文章,start在服务的onStartCommand()内,stop在onDestroy()内。很难说不在上下文中看到代码,但我担心的是,.stopScan
不是一直被调用,就是在调用下一个startScan
之前一直被调用。