Передача iBeacon кажется нестабильной, Altbeacon android Kotlin - PullRequest
0 голосов
/ 20 апреля 2020

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

Я ожидаю, что когда излучается маяк, тогда уведомитель Range должен всегда возвращать маяк, но иногда он возвращается к счетчику 0, а затем снова возвращает маяк.

**val beacon = Beacon.Builder()
.setId1("f7826da6-4fa2-4e98-8024-bc5b71e0893e")
.setId2("1")
.setId3("2")
.setManufacturer(0x004c)
.setTxPower("-59")
.build()**

**beaconTransmitter = BeaconTransmitter (this, BeaconParser()
.setBeaconLayout ("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24");
beaconTransmitter?.startAdvertising(beacon)
mBeaconManager = BeaconManager.getInstanceForApplication(applicationContext)
mBeaconManager?.beaconParsers?.add(BeaconParser().setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"))**

**private val mRangeNotifier = RangeNotifier { beacons, region ->
   //Here I receive zero beacon some time, mostly it works but form very small interval of time beacon count is zero
}**

There should be proper detection of beacon so no inconsistency occurs, at least I could always track the beacons.

I have tested it on -
One plus 5 with Android version 9
One plus 6 Plus with Android version 9
Poco F1 with Android version 8

Library version - 2.16.4

1 Ответ

1 голос
/ 21 апреля 2020

Здесь много переменных, где может возникнуть проблема:

  1. Показанный код (или вспомогательный код, не показанный в вопросе.)
  2. Аппаратные проблемы с передачей телефон.
  3. Аппаратные проблемы с принимающим телефоном.

Поскольку вы работаете с тремя разными телефонами, комбинации возможных источников проблем растут с комбинациями телефонов.

Чтобы отследить это, вы должны упростить свои тестовые случаи:

  1. Используйте эталонный передатчик маяка для ваших тестов, который является наиболее надежным. Выберите аппаратный маяк (лучший) или программу-передатчик маяков на ноутбуке (лучше), если она у вас есть. Если у вас нет другого выбора, выберите один из телефонов, который будет передатчиком, и выберите тот, который, по вашему мнению, является наиболее надежным.
  2. Используйте стандартную программу обнаружения маяков, основанную на этой же библиотеке, такую ​​как Область действия маяка и проверка обнаружения маяка. Использование готовой программы устранит любые ошибки кодирования в вашем программном обеспечении для обнаружения.
  3. Проверьте готовое обнаружение на каждом из ваших телефонов. Это скажет вам, у кого, если таковые имеются, проблемы с оборудованием, если они не могут надежно обнаружить.
  4. Как только у вас есть надежный передатчик и вы узнаете, какие телефоны являются надежными детекторами, go вернитесь к вашей программе и работайте над созданием это так же надежно, как то, что вы видите с Beacon Scope, используя самый надежный передатчик.
...