当前位置: 首页 > 知识库问答 >
问题:

Altbeacon Android库-didRangeBeaconsInRegion

黄锋
2023-03-14

我正在对信标进行测距,我的目标是处理didRangeBeaconsInregion中的信标集合,以便获得集合中最近的一个,并在屏幕上显示与信标itselt相关的字符串(Beacon1=Red,Beacon2=Blue...)。我目前的ibeacons广告速率是1Hz(我还不能配置它们来提高它)。

public void onBeaconServiceConnect() {
    beaconManager.setRangeNotifier(new RangeNotifier() {
        @Override
        public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {

            Beacon closest = null;
            double distance = 100.0;
            logToDisplay(beacons.size() + " beacons in collection");

            for (Beacon beacon : beacons) {

                if (distance > beacon.getDistance()) {
                    closest = beacon;
                    distance = beacon.getDistance();
                }

            }

            if (closest == null) {
                logToDisplay(getCurrentTimeStamp() + " | Closest = null");
            }
            else if (closest.getId3().toInt() == 1) {
                logToDisplay(getCurrentTimeStamp() + " | BLUE");
            }
            else if (closest.getId3().toInt() == 3) {
                logToDisplay(getCurrentTimeStamp() + " | RED");
            }
            else if (closest.getId3().toInt() == 4) {
                logToDisplay(getCurrentTimeStamp() + " | GREEN");
            } // ... and so on with some more colours

        }

    });

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

据我所知,didRangeBeaconsinRegion有一个beacons集合,它是上一秒钟看到的beacons的缓冲区。由于我的信标只有1Hz的广告速率,收集的大小很小,我不能得到一致的结果。

我认为有两个解决办法:

  1. 增加广告率(对我来说还不可能)。
  2. 增加didRangeBeaconsinRegion方法的1秒周期,以便beacons集合缓冲过去5秒内看到的beacons(例如)。

共有1个答案

百里意智
2023-03-14

是的,你可以说到做到,这应该有助于使结果更加一致。

在首次获得BeaconManager实例后立即添加您提到的行:BeaconManager.SetForeGroundScanPerio(5000L);

 类似资料:
  • CodeIgniter 内置了速度快、功能强大的数据库类作为数据库的中间抽象层。数据库类支持传统架构以及 Active Record 架构。类中的数据库函数使用简单明了的语法。 数据库配置 入门:用法举例 连接数据库 查询 生成查询结果 查询辅助函数 Active Record 类 事务 表格元数据 字段元数据 自定义函数调用 查询缓存 数据库维护类 数据库工具类

  • 标准库 名称 摘要 archive tar tar包实现了tar格式压缩文件的存取. zip zip包提供了zip档案文件的读写服务. bufio bufio 包实现了带缓存的I/O操作. builtin builtin 包为Go的预声明标识符提供了文档. bytes bytes包实现了操作[]byte的常用函数. compress bzip2 bzip2包实现bzip2的解压缩. flate f

  • 我想用com。Android支持:设计:22.2.0在我的Android Studio(1.3)项目中,但当我添加'com'时。Android支持:设计:22.2.0'到依赖{}我有103个错误,我无法摆脱这个错误。 如果我尝试使用新版本的appcompat,也会发生同样的情况。现在我有了“com”。Android支持:appcompat-v7:19。“以我的身材。格雷德尔。 有人知道吗? 我的错

  • 页面开发省不了js和css 起码添加jquery吧 下载地址 https://jquery.com/download/ 将其存在在 WebContent/rs/js/jquery.js material-design-css(可选) nutz-book-project中使用了pangwu86编写的material-design-css 可以直接把nutz-book-project的rs目录拷贝过来

  • 主要内容:导入库,封装库,创建自定义库,库前缀编程语言中的库表示例程集合(编程指令集)。Dart有一组内置库,可用于存储经常使用的例程。Dart库包含一组类,常量,函数,typedef,属性和异常。 导入库 导入使库中的组件可用于调用者代码。关键字用于实现相同的目标。dart文件可以有多个语句。 内置Dart库URI使用来引用库。其他库可以使用文件系统路径或来指定其URI。包管理器(如pub工具)提供的库使用。 下面给出了在Dart中导入库的

  • table 库是由一些辅助函数构成的,这些函数将 table 作为数组来操作。 下标从 1 开始 在 Lua 中,数组下标从 1 开始计数。 官方解释:Lua lists have a base index of 1 because it was thought to be most friendly for non-programmers, as it makes indices corresp