Я пытаюсь создать приложение для определения местоположения в помещении, чтобы определять свое местоположение и навигацию. Я уже настроил свое приложение Bluetooth для сканирования и отображения найденных устройств и маяков. Однако я узнал, что некоторые из найденных устройств были повторены. Что мне нужно сделать, чтобы остановить его, и я хотел найти только MAC-адрес определенных устройств. Могу ли я узнать, как использовать метод ScanFilter
и в чем разница между ScanFilter
и ScanFilter.Builder
? Нужно ли реализовывать ScanSetting
?
я пытаюсь поставить это
ScanFilter scanFilterMac = new ScanFilter.Builder().setDeviceAddress("88:88:88:B0:03:DB").build();
Я изменил только MAC-адрес, но не получил никакого результата. и могу ли я сделать что-то подобное, поскольку я знаю, что первые 6 цифр одинаковы
ScanFilter scanFilterMac = new ScanFilter.Builder().setDeviceAddress("68:54:F5:([A-Fa-f0-9]{2}:){2}([A-Fa-
f0-9]{2})").build();
public void startScanning() {
final BluetoothLeScanner btScanner = btAdapter.getBluetoothLeScanner();
if (btScanner == null) {
// not enabled yet or not supported
return;
}
System.out.println("start scanning");
peripheralTextView.setText("");
startScanningButton.setVisibility(View.INVISIBLE);
stopScanningButton.setVisibility(View.VISIBLE);
AsyncTask.execute(new Runnable() {
@Override
public void run() {
ScanFilter scanFilterMac = new ScanFilter.Builder().setDeviceAddress("68:54:F5:88:88:88").build();
listFilter.add(scanFilterMac);
btScanner.startScan(listFilter,leScanCallback);
}
});
}