Intereting Posts
Android – создание изображений и значков Asynctask vs Thread vs Services vs Loader ПОСЛЕДОВАТЕЛЬНЫЙ двунаправленный P2P с NFC на прянике Как добавить подпись кнопки на кнопке изображения Как получить событие клика в тексте маркера Android Picasso Настройка размера LruCache Открыть настройки Android из приложения QT (com.android.settings) Android Firebase – «onDataChange» и «onCancelled» не вызывается без подключения к Интернету Каков рекомендуемый способ создания Android-библиотек для использования в приложениях? Android: Как перетащить (переместить) PopupWindow? Как обрабатывать AsyncTask onPostExecute при приостановке, чтобы избежать исключения IllegalStateException Внезапно появляется android.os.NetworkOnMainThreadException Как вы можете сделать поддержку распознавания речи эмулятором Android Копирование каталогов и файлов из папки res / raw на SD-карту – андроид Как анализировать данные из двух разных URL-адресов методом asyncTask

Как получить уникальный идентификатор маяка, используя SDK Estimote в Android

Я разрабатываю приложение, в котором я использую Beacons. Я прошел через соответствующий SDK Estimote для этого же. Теперь дело в том, что мне нужно знать уникальный идентификатор конкретного маяка. Предположим, у меня есть 3 маяка, и все они присутствуют в диапазоне устройства. Теперь я хочу выполнять разные функции на основе уникального идентификатора маяков. Для этого мне нужно знать уникальный идентификатор каждого маяка. В настоящее время я даю UUID для маяка и проверяю его в области устройства или нет. Мой код выглядит следующим образом:

private static final String ESTIMOTE_PROXIMITY_UUID = "XYZ"; private static final Region ALL_ESTIMOTE_BEACONS = new Region("regionId",ESTIMOTE_PROXIMITY_UUID, null, null); beaconManager.setMonitoringListener(new MonitoringListener() { @Override public void onExitedRegion(Region region) { //Region Exited } @Override public void onEnteredRegion(Region arg0, List<Beacon> arg1) { // TODO Auto-generated method stub //Do something ... } }); 

Теперь мне нужно получить уникальный идентификатор маяка программно, чтобы я мог принять решение в зависимости от идентификаторов. Пожалуйста, помогите мне разобраться с этим. Любая помощь будет заметна. Благодарю.

У каждого маяка есть ID .
ID имеет длину 20 байтов и делится на три части:

  • proximityUUID (16 байт)

  • major число (2 байта)

  • minor число (2 байта).

Как использовать их для идентификации конкретного маяка?

Во-первых, вы должны знать, что вокруг вас может быть много маяков. Эти маяки могут исходить от других поставщиков, компаний или разработчиков, поэтому вы хотите отфильтровать их.
Чтобы фильтровать маяки, вы должны использовать proximityUUID для группировки маяков, предоставленных вами или вашей компанией. Дайте тот же самый proximityUUID всем вашим маякам.
После этого вы можете начать мониторинг и варьировать:

 private final Region MY_BEACONS = new Region("MY_BEACONS","YOUR_PROXIMITY_UUID", null, null); beaconManager.startMonitoring(MY_BEACONS); beaconManager.startRanging(MY_BEACONS); 

Теперь, в ваших слушателях, вы будете уведомлены, когда ваши маяки будут в районе.

Теперь давайте предположим, что вы пишете приложение для кинотеатров в городе. В каждом кинотеатре есть два разных маяка для выполнения различных действий . Как провести различие между маяками для кинотеатров и как сделать это для конкретного маяка в спекулятивном кино?
Используйте major и minor поля. Например:

  • Использовать major для идентификации всех маяков в конкретном кинотеатре,
  • Используйте minor для идентификации конкретного маяка в конкретном кинотеатре.

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

  private final int SCARY_CINEMA_ID = 1111; private final int SCARY_CINEMA_BEACON_1 = 1; private final int SCARY_CINEMA_BEACON_2 = 2; private final int COMEDY_CINEMA_ID = 2222; private final int COMEDY_CINEMA_BEACON_1 = 1; private final int COMEDY_CINEMA_BEACON_2 = 2; @Override public void onEnteredRegion(Region region, List<Beacon> beacons) { for(Beacon beacon : beacons){ if(beacon.getMajor() == SCARY_CINEMA_ID){ if(beacon.getMinor == SCARY_CINEMA_BEACON_1){ //do something for this beacon } else{ //do something for second beacon in cinema } } else if(beacon.getMajor == COMEDY_CINEMA_ID){ ... } } 

Надеюсь, это поможет вам 🙂

Пришел к этой статье, когда я ее пробовал, это может вам помочь. https://community.estimote.com/hc/en-us/articles/200868188-How-do-I-modify-UUID-major-and-minor-values-