首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有可能改变安卓的iBeacon信标频率吗?

有可能改变安卓的iBeacon信标频率吗?
EN

Stack Overflow用户
提问于 2013-12-30 17:10:49
回答 2查看 3.1K关注 0票数 1

我目前正在开发一个Android应用程序,该应用程序可以使用库iBeacon ( Android iBeacon Libraryhttp://developer.radiusnetworks.com/ibeacon/android/)来监视Android iBeacon Library的信号强度。

但是因为我们想使用频率非常慢的iBeacons来节省电池,所以我需要增加几分钟的频率才能在信号强度监测期间进行频繁的检测。问题是,我使用的库似乎没有提供这种功能。我在网上搜索了其他能提供这个功能的库,但是我找不到。

你知道一个库可以让一个人改变iBeacon的信标频率吗?如果没有,我应该如何进行编码?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-30 22:55:24

我对你问题的理解是:你想要一个与iBeacon沟通的安卓库来动态地改变它的广告率。

不幸的是,我认为Android是最简单的部分。最困难的是,我认识的任何iBeacon制造商都没有一个开放的API,允许您动态地更改广告费率。(不过也有一些允许您使用应用程序通过辅助蓝牙连接配置此速率。半径网络的小型USB驱动iBeacons就是这样工作的。)因为每个供应商的服务工作方式不同,所以您必须反向设计每个配置BLE服务的工作方式。

如果您真的想这样做,下面是我如何处理它的方法:

  1. 构建您自己的自定义iBeacon,它具有辅助蓝牙LE服务,允许您连接到信标并更改其广告费率。一个很好的原型方法是使用iOS设备作为iBeacon,或者使用我公司的iBeacon开发工具包之一。对于基于iOS的信标,您可以在目标C中编写辅助服务。对于IDK信标,您可以用Linux支持的任何语言编写软件。
  2. 编写自定义的Android代码,连接到蓝牙服务,并根据需要设置广告费率。你可以把这个和安卓iBeacon库一起用。而且,作为一个开源项目,一旦代码正常工作,就可以将代码合并到其中。(我是和他说话的人!)
  3. 一旦你有了这个工作,与一个iBeacon供应商交谈,为一个电池供电的信标定制固件,做完全相同的事情。硬件供应商会告诉你如何制作定制固件。这通常需要一个专用工作台工具,并且是用C或专用脚本语言完成的。
票数 4
EN

Stack Overflow用户

发布于 2013-12-30 18:52:23

是!来自Radius的安卓iBeacon库支持这一点。下面是示例代码,它将前景和背景扫描周期更改为每5分钟一次。这意味着库将花费5分钟进行扫描,并让您知道在这段时间内它看到了什么iBeacons。(前台默认值为1.1秒。)

你可以根据你的应用程序中的一些算法来改变这个频率。

代码语言:javascript
复制
iBeaconManager = IBeaconManager.getInstanceForApplication(this.getApplicationContext());

...

@Override
public void onIBeaconServiceConnect() {
    try {
      long five_minutes_in_millis = 5*60*1000l;
      iBeaconManager.setForegroundScanPeriod(five_minutes_in_millis); 
      iBeaconManager.setBackgroundScanPeriod(five_minutes_in_millis); 
    } catch (RemoteException e) {
        e.printStackTrace();
    }
}

完全披露:我是Radius网络公司的员工,也是这个图书馆的主要作者。

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

https://stackoverflow.com/questions/20844168

复制
相关文章

相似问题

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