Адрес Bluetooth маяка в AltBeacon по сравнению с адресом адаптера Bluetooth

В настоящее время я использую библиотеку AltBeacon для разработки своего приложения для Android.

Мне нужно определить, какое рекламное устройство отправило маяк с точки зрения сканирующего устройства. Итак, я подумываю использовать MAC-адрес bluetooth для проверки рекламного устройства.

Используя библиотеку, мой обратный вызов для RangeNotifier вызывается, когда обнаруживается набор маяков, как показано ниже:

@Override
public void didRangeBeaconsInRegion(Collection beacons, Region region) {
  for (Beacon b : beacons) {
    System.out.println(b.getBluetoothAddress());
  }
}

После тестирования заметил, что getBluetoothAddress() не совпадает с MAC-адресом bluetooth рекламного устройства.

На рекламном устройстве я получаю MAC-адрес Bluetooth следующим образом:

public String getMacAddress() {
    BluetoothAdapter.getDefaultAdapter().getAddress();
}

Поэтому мои вопросы:

  1. Я ошибаюсь, полагая, что Beacon getBluetoothAddress() отличается от MAC-адреса bluetooth рекламодателя? Если отличается, по какому адресу Beacon возвращается?
  2. Как я могу узнать, что такое Beacon.getBluetoothAddress () рекламного устройства, до рекламы?
  3. Приветствуются любые другие предложения по идентификации рекламного устройства (кроме использования MAC-адреса Bluetooth).

person wns349    schedule 20.05.2015    source источник


Ответы (1)


Какие маяки вы используете (производитель)? Рекламный MAC-адрес - это поддельный адрес, поэтому вполне возможно, что вы получите другие значения. Есть даже производители (например, Gimbal), которые встроили ротацию MAC-адресов, поэтому принимающее устройство не сможет идентифицировать устройство по двум сигналам, которые изначально исходили от одного и того же устройства, но с другим MAC.

В обычном случае должно быть достаточно идентифицировать маяк с помощью его UUID, основной и второстепенной комбинации, если вы знаете все маяки, на которые вы хотите реагировать в своем приложении.

person itsJASPERr    schedule 21.05.2015
comment
Использование уникального UUID для идентификации устройства помогло. Спасибо, - person wns349; 26.05.2015