8

Вчера я получил обновление для Android 5.0 на своем Nexus 4, и библиотека altbeacon перестала обнаруживать маяки. Похоже, что didEnterRegion и didRangeBeaconsInRegion даже не вызываются при мониторинге и ранжировании, соответственно.Библиотека Altbeacon, не работающая на Android 5.0

Даже приложение Locate из Radius Networks ведет себя по-другому в настоящее время, значения из маяков после их обнаружения больше не обновляются и часто появляются так, как будто маяки выходили за пределы диапазона.

Одна вещь, которую я отметил по-другому, заключается в том, что теперь в logcat появляется следующая строка «BluetoothLeScanner: не удалось найти обратную оболочку». Я пошел вперед и искал этот класс и увидел, что он появился с Android L, но я не знаю, связано ли это с этим.

Важно сказать, что до обновления я работал без проблем с приложениями Locate и Reference Application.

Я не знаю, является ли это обобщенной проблемой или нет, но если это случилось со мной, я уверен, что это может случиться с кем-то другим, поэтому любая помощь будет действительно оценена.

Заранее благодарен!

UPDATE:

После провала на получение библиотеки на работу я решил попробовать Android L филиал библиотеки. Что я сделал, так это то, что я подключил новую библиотеку к справочному приложению, но не работал так, как ожидалось.

Активность монитора, похоже, работает нормально, сообщая, когда устройство ввело новый регион. Тем не менее, Ranging Activity не сообщает о каких-либо маяках, хотя didRangeBeaconsInRegion получает вызов, всегда сообщает о нулевых маяках. Любопытно, что когда действие приостанавливается (мгновенно переключается на другое приложение), logcat показывает, что теперь didRangeBeaconsInRegion действительно вызывается с реальными маяками.

Я как бы застрял прямо сейчас, потому что я не знаю, как получить какие-либо библиотеки, работающие на Android L, так что любая помощь будет действительно оценена.

+0

Эй, вы получили решение для этого. Я обновил свою связь до L и получил аналогичную проблему. – Amit

+1

У меня есть аналогичная проблема. Но он работал для меня на устройстве с Lollipop в один прекрасный день, а на следующий день именно это происходит. – hmartinezd

+0

Вы пробовали разные устройства? Я только что много читал в BLE и видел, что люди, использующие Nexus4, имеют плохой успех при сканировании BLE. – SteelBytes

ответ

1

Я использую последнюю версию Altbeacon на 5.0+ и не испытываю никаких проблем с ней. на самом деле, я никогда не использовал его на kitkat, поэтому я не уверен, что могу помочь, но вот мой рабочий код, который слушает iBeacons.

осуществить beaconConsumer:

public class MainActivity implements BeaconConsumer 

INIT BeaconManager

 beaconManager = BeaconManager.getInstanceForApplication(this); 
     if (beaconManager != null && !beaconManager.isBound(this)) { 
     beaconManager.getBeaconParsers().add(new BeaconParser(). 
       setBeaconLayout("m:0-3=4c000215,i:4-19,i:20-21,i:22-23,p:24-24")); 
     beaconManager.bind(this); 
    } 

OnConnect и начать у слушателя

  @Override 
public void onBeaconServiceConnect() { 
    beaconManager.setRangeNotifier(new RangeNotifier() { 
     @Override 
     public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) { 
      if (beacons.size() > 0) { 
       Beacon firstBeacon = beacons.iterator().next(); 

      } 
     } 
    }); 
    beaconManager.startRangingBeaconsInRegion(new Region("com.example.app", null, null, null)); 
} 

этот код работает на 3-х устройств

  1. Nexus 4 5.0.1
  2. Samsung Galaxy s4 - Стоковая 5.0.1
  3. Samsung Galaxy s4 - 5,1 CM12.1
0

Старый вопрос, но, возможно, некоторые люди попытаются найти ответ для более высоких систем, где вы должны попросить разрешения. Перед сканированием необходимо запросить Manifest.permission.ACCESS_FINE_LOCATION. По крайней мере, это была проблема, с которой я встречался. По-моему, lib должен как минимум сбой таких случаев и указать проблему

Смежные вопросы