Blu*_*rin 3 java android bluetooth ibeacon altbeacon
我一直在尝试从AltBeacon 修改参考应用程序以检测iBeacons.
在RangingActivity中,我取代了
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ranging);
beaconManager.bind(this);
}
Run Code Online (Sandbox Code Playgroud)
同
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ranging);
BeaconParser bp = new BeaconParser();
bp.setBeaconLayout("m:0-3=4c000215,i:4-19,i:20-21,i:22-23,p:24-24");
List<BeaconParser> lbp = beaconManager.getBeaconParsers();
lbp.add(bp);
beaconManager.bind(this);
}
Run Code Online (Sandbox Code Playgroud)
为了应用修改来检测我在这里找到的iBeacon .
但是这会抛出lbpjava.util.Collections $ UnmodifiableRandomAccessList.我是Java的新手,但我想这是一个我无法添加项目的列表,并且在第二个链接中的解决方案之间的库中必须更改某些内容.
有人知道BeaconParser在这里添加新的或者我做错的正确方法是什么?
小智 5
我已经在GitHub上回答了你的问题,但我觉得我应该在这里回答,以帮助其他面临这个问题的人.
我检查了源代码(v2.1.3),很可能你是在绑定信标服务后添加新的解析器(禁止未来的自定义布局添加).
public List<BeaconParser> getBeaconParsers() {
if (isAnyConsumerBound()) {
return Collections.unmodifiableList(beaconParsers);
}
return beaconParsers;
}
Run Code Online (Sandbox Code Playgroud)
为了之后添加任何布局解析器,您需要取消绑定所有服务连接,其中包括所有服务连接RegionBootsrap.如果您定义了一个,则需要禁用它,因为它还与之建立连接BeaconService.
但是,我相信您以后不需要添加任何自定义布局.如果要将布局存储在远程中,则应首先获取它们然后绑定BeaconManager.
顺便说一下,如果您认为应该将此功能添加到库中,您可以在库的GitHub页面上创建请求: AltBeacon GitHub
| 归档时间: |
|
| 查看次数: |
446 次 |
| 最近记录: |