因为它是开源的,我想坚持它,以后相应地个性化(更新)。
例如,我们需要使用以下代码设置信标布局:
beaconManager.getBeaconParsers().add(new BeaconParser().setBeaconLayout("m:2-3=beac,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25"));
编辑:我更改了代码的setBeaconLayout部分,正如答案中所建议的那样。但还是不起作用。
public void onCreate() {
super.onCreate();
BeaconManager beaconManager = org.altbeacon.beacon.BeaconManager.getInstanceForApplication(this);
beaconManager.getBeaconParsers().clear();
beaconManager.getBeaconParsers().add(new BeaconParser().
setBeaconLayout(BeaconParser.EDDYSTONE_UID_LAYOUT)); //for Eddystone...
Log.d(TAG, "setting up background monitoring for beacons and power saving");
Region region = new Region("backgroundRegion",null, null, null);
regionBootstrap = new RegionBootstrap(this, region);
backgroundPowerSaver = new BackgroundPowerSaver(this);
}
最近我在努力实现同样的目标,并在这里找到了一个解决方案。另外,您需要将信标置于Eddystone UUID模式来配置它。只需更改setBeaconLayout
,我们就无法检测到不同的信标格式。您可以使用以下内容探索不同的信标格式:mbeaconmanager.getbeaconparsers().add(new BeaconParser().setbeaconlayout(BeaconParser.eddystone_uid_layout));
。
所以您的代码应该看起来像,
public class MyApplication extends Application implements BootstrapNotifier {
private static final String TAG = "MyApplication";
private RegionBootstrap regionBootstrap;
private BackgroundPowerSaver backgroundPowerSaver;
private BeaconManager mBeaconManager;
public void onCreate() {
super.onCreate();
mBeaconManager = org.altbeacon.beacon.BeaconManager.getInstanceForApplication(this);
mBeaconManager.getBeaconParsers().clear();
mBeaconManager.getBeaconParsers().add(new BeaconParser().
setBeaconLayout(BeaconParser.EDDYSTONE_UID_LAYOUT));
Region region = new Region("my-beacon-region", null, null, null);
regionBootstrap = new RegionBootstrap(this, region);
backgroundPowerSaver = new BackgroundPowerSaver(this);
}
@Override
public void didEnterRegion(Region region) {
Log.d("radbeacon", "Beacon detected in region");
}
@Override
public void didExitRegion(Region region) {
Log.d("radbeacon", "Beacon out of region");
}
@Override
public void didDetermineStateForRegion(int i, Region region) {
//Ignore
}
}
另外,不要忘记将信标置于Eddystone
UID模式,然后打开信标,这样应用程序就可以检测到它。
我有一个关于使用AltBeacon库用Eddystone信标监视多个区域的问题。 例如,假设我有3个信标,每个信标被分配给另一个区域,并且这些区域是基于信标的实例值定义的,即(“region1”,null,“instanceValueOfBeacon”,null)并且我对每个didenterregion有不同的操作。
运行我的android应用程序时出现以下错误: 检测到屏幕覆盖: 要更改此权限设置,您首先必须从设置中关闭屏幕覆盖 我的应用程序没有列在显示的列表中。 如何解决这个错误?
我能够在Android的Altbeacon库的Github站点上运行用于传输Altbeacon的示例。这在我的手机上工作得很好,我可以通过另一部手机发送一个Altbeacon并检测到它。 我需要开发一个POC,其中我可以传输Eddystone信标与Url数据。我对如何在使用Builder构建Beacon时设置Url数据有点困惑,Altbeacon library网站上的文档演示了Eddystone
null null null 在两个平台上使用相同的UUID,当从iOS传输iBeacon信号时,使用CLLocationManager委托方法在另一个iOS设备上检测到该信号 使用相同的UUID从使用Android Beacon库的Android传输iBeacon信号,IOS上的上述CLLocationManager委托方法不会检测到该Beacon。 为了增加检测的机会,我取消了iOS端对主值和
使用https://altbeacon.github.io/android-beacon-library/samples.html中的代码试图检测IBeacon发射器,该发射器是iOS8,如下http://blog.passkit.com/configure-iphone-ibeacon-transmiter/,在哪一步出错了,我需要在区域中使用BeaconIdentifier作为mymonito
我有一个布局,要求用户输入名称和日期。用于输入我使用的日期https://github.com/ErNaveen/MaterialDateTimePicker库,也可以使用OkHttpLibrary将数据发送到服务器。当我在输入两个数据后单击提交按钮时,我得到了以下错误。响应的作用域。。。 错误: