В моем приложении у меня есть запуск и остановка кнопки, когда пользователь нажимает кнопку пуска я называю startScan методBluetoothAdapter не остановит сканирование для BLE устройств
bluetoothAdapter.getBluetoothLeScanner().startScan(getLeScanCallback());
Когда пользователь нажимает кнопку остановки я называю stopScan однако это не кажется делать что-либо. BluetoothAdapter продолжает сканирование для новых устройств.
bluetoothAdapter.getBluetoothLeScanner().stopScan(getLeScanCallback());
Вот мой метод getLeScanCallback:
private ScanCallback getLeScanCallback(){
ScanCallback leScanCallback = new ScanCallback() {
@Override
public void onScanResult(int callbackType, ScanResult result) {
super.onScanResult(callbackType, result);
boolean duplicate = false;
for(Device d : devices) {
if(d.getAddress().equals(result.getDevice().getAddress()))
duplicate = true;
}
if(!duplicate) {
Device device = new Device();
device.setName(result.getDevice().getName());
device.setAddress(result.getDevice().getAddress());
device.setStatus(getString(R.string.disconnected));
devices.add(device);
deviceListAdapter.notifyDataSetChanged();
}
}
@Override
public void onBatchScanResults(List<ScanResult> results) {
super.onBatchScanResults(results);
}
@Override
public void onScanFailed(int errorCode) {
super.onScanFailed(errorCode);
}
};
return leScanCallback;
}
Она вызывается даже после того, как stopScan() называется. Что я делаю неправильно или, другими словами, как остановить сканирование для устройств BLE?
Я не думаю, что есть такие методы, как startLeScan и stopLeScan. – user1852879
Я использовал в своем проекте –
Есть bluetoothAdapter.startLeScan() и bluetoothAdapter.stopLeScan(), но они устарели. – user1852879