Идентификатор региона библиотеки маяков Android для AltBeacon имеет значение null

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

Я устанавливаю регион так:

Region region = new Region("backgroundRegion", null, null, null);

Когда мое приложение обнаруживает маяк в пределах досягаемости, я регистрирую его следующим образом:

@Override public void didEnterRegion(Region region) {
        Log.v(TAG, "didEnterRegion() called with: region = [" + region.toString() + "]");
    }

id1, id2 и id3 возвращают ноль.

Вместо этого, если я сделаю это:

Region region = new Region("backgroundRegion", Identifier.parse("0x0b85497366bad1356d69"), null, null);

id1 возвращает `b85497366bad1356d69`

Я хочу обнаружить все устройства Eddystone. Могу ли я получить идентификатор устройства, если я не установил регион для этого идентификатора?


person Favolas    schedule 29.09.2017    source источник


Ответы (1)


Объект Ranging в обратном вызове для didEnterRegion - это просто копия того, который вы использовали для начала мониторинга, поэтому все идентификаторы будут нулевыми, если исходная область имеет все идентификаторы, равные нулю.

Решение? Используйте startRangingBeaconsInRegion () и обратный вызов didRangeBeaconsInRegion. Этот обратный вызов предоставит вам список обнаруженных маяков, соответствующих региону, поэтому вы можете прочитать все фактические идентификаторы.

person davidgyoung    schedule 30.09.2017