我正在使用此页面上的示例代码(http://altbeacon.github.io/android-beacon-library/samples.html)在背景部分的启动应用程序中,我有一个正在运行的应用程序.
它会检测信标即使在背景上也在范围内.
问题是我需要知道它是哪个信标(UUID,Major,Minor)然后将它与我的本地数据库匹配并在应用程序仍然在后台发出通知.
dIDEnterRegion(Region区域)函数只有一个matchesBeacon方法,我尝试过以下方法来识别哪些信标正在被看到,但它正在抛出一个NullPointerException:
public class SightSeeing extends Activity implements bootstrapNotifIEr,RangeNotifIEr {@OverrIDeprotected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Region region = new Region("sightRegion",null,null); regionbootstrap = new Regionbootstrap(this,region); BeaconManager.getInstanceForApplication(this).getBeaconParsers().add( new BeaconParser(). setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24") ); BeaconManager.getInstanceForApplication(this).setRangeNotifIEr(this);}@OverrIDepublic voID dIDEnterRegion(Region region) { regionbootstrap.disable(); BeaconManager.getInstanceForApplication(this).setRangeNotifIEr(this); try { BeaconManager.getInstanceForApplication(this).startRangingBeaconsInRegion(region); } catch (remoteexception e) { Log.e(TAG,"Can't start ranging"); } }@OverrIDepublic voID dIDRangeBeaconsInRegion(Collection
我错过了一些明显的东西,或者这个库不可能吗?
编辑:
我已经更新了代码示例,以便为您提供更广泛的想法,并且我已经尝试实施FOliveira的建议而没有任何成功.
EDIT2:
更新了代码以反映davIDgyoung的建议.仍然没有运气.我在dIDRangeBeaconsInRegion()函数的第一行有一个Log.d(),它没有被调用.
我已经尝试添加BeaconManager.getInstanceForApplication(this).setRangeNotifIEr(this);在try / catch块之前,结果是一样的.
我是否实施了错误的建议,还是有其他办法让这项工作成功?
最佳答案如果您希望应用程序在信标检测上启动,那么Regionbootstrap是最简单的方法.为了将此与需要检测单个信标的Ranging结合起来,然后在dIDEnterRegion方法中添加代码,如下所示:try { BeaconManager.getInstanceForApplication(this).startRangingBeaconsInRegion(region);} catch (remoteexception e) { Log.e(TAG,"Can't start ranging");}
然后像你一样实现一个范围回调.
您还需要删除下面的代码,这可能是导致您的NullPointerException的原因,因为:
for(int i=0; i< beaconsList.size(); i++) { Beacon b = new Beacon.Builder() .setID1(beaconsList.get(i).get("uuID")) .setID2(beaconsList.get(i).get("major")) .setID3(beaconsList.get(i).get("minor")) .build(); if(region.matchesBeacon(b)) { //get info from DB and throw notification } }
编辑:我已更新库的参考应用程序,以显示如何成功完成此 *** 作.见:https://github.com/AltBeacon/android-beacon-library-reference/blob/master/src/org/altbeacon/beaconreference/BeaconReferenceApplication.java 总结
以上是内存溢出为你收集整理的java – 如何从RegionBootstrap AltBeacon方法获取可见信标全部内容,希望文章能够帮你解决java – 如何从RegionBootstrap AltBeacon方法获取可见信标所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)