首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AltBeacon在安卓系统上检测Kontakt信标的正确布局

AltBeacon在安卓系统上检测Kontakt信标的正确布局
EN

Stack Overflow用户
提问于 2014-08-15 00:39:53
回答 2查看 9.2K关注 0票数 13

我试图用以下BeaconLayout探测到一个Kontakt信标:

代码语言:javascript
复制
setBeaconLayout("m:8-9=0215,i:10-13,i:14-15,i:16-17,i:18-25"));

但我似乎做得不对。广告包结构如下:

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-17 19:51:25

感谢@davidgyoung的评论,我终于可以用以下代码检测到我的Kontakt信标:

代码语言:javascript
复制
public class MainActivity extends Activity implements BeaconConsumer {

protected static final String TAG = "RangingActivity";
BeaconManager beaconManager = BeaconManager.getInstanceForApplication(this);

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);        
    beaconManager.getBeaconParsers().add(new BeaconParser().setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25"));
    beaconManager.bind(this);    
}

@Override
public void onBeaconServiceConnect() {
      beaconManager.setRangeNotifier(new RangeNotifier() {
            @Override 
            public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
                if (beacons.size() > 0) {
                    Log.d(TAG, "The first beacon I see is about "+beacons.iterator().next().getDistance()+" meters away.");     
                }
            }
            });

            try {
                beaconManager.startRangingBeaconsInRegion(new Region("myRangingUniqueId", null, null, null));
            } catch (RemoteException e) {   }
}

请注意,我使用的是一个2.2版本的Kontakt信标,这是一个不同的版面张贴上述。

票数 15
EN

Stack Overflow用户

发布于 2014-08-15 21:09:40

关于beaconLayout的几个问题:

  1. beaconLayout字符串中的字节偏移以制造商数据(显示的表中的字节6)开始,因此需要从所有偏移量中减去6。
  2. 该表显示信标中只有三个标识符,但您的beaconLayout字符串有四个。注第一个标识符有16个字节长。

如果你让它工作,请张贴正确的beaconLayout你使用。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25319682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档