如果我从任务管理器中删除应用程序,则不检测信标

时间:2017-05-18 11:05:15

标签: android bluetooth-lowenergy altbeacon beacon

我正在使用Altbeacon来检测iBeacons。

如果应用程序位于前台,或者如果应用程序通过“主页”按钮处于后台,则可以正常工作。在这两种情况下都很完美。

但是,当我在通过任务管理器杀死应用程序后尝试检测信标时,没有任何方法可以检测到任何信标。我疯了。

我正在使用Altbeacon的最新版本,这是我的代码(应用程序类):

<meta http-equiv="X-Ua-Compatible" content="IE=edge,chrome=1">
<!--[if lt IE 9]>
        <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
        <![endif]-->

<div class="pagination">
  <ul>
    <li>
      &laquo;
    </li>
    <li>
      1
    </li>
    <li>
      2
    </li>
    <li>
      3
    </li>
    <li>
      4
    </li>
    <li>
      &raquo;
    </li>
  </ul>
</div>

我已经阅读了很多帖子,但我还没有找到任何解决方案。

用于测试的智能手机:小米Redmi Note 2,三星Galaxy S5

---------------- UPDATE ------------------------

RegionBootstrap回调的代码:

public void startBeaconScan() {

        beaconManager = BeaconManager.getInstanceForApplication(this);
        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"));  //iBeacon layout

        beaconManager.setBackgroundBetweenScanPeriod(500);
        beaconManager.setBackgroundScanPeriod(500);
        beaconManager.setForegroundBetweenScanPeriod(500);
        beaconManager.setForegroundScanPeriod(500);

        beaconManager.setRegionStatePeristenceEnabled(false);
        beaconManager.bind(this);

        region = new Region("myMonitoringUniqueId", Identifier.parse("2f234454-cf6d-4a0f-adf2-f4911ba9ffa6"), null, null);
        new RegionBootstrap(this, region);
    }

对于每一个我都有默认日志,并且在应用程序被杀之后都不会显示它们。

1 个答案:

答案 0 :(得分:1)

为了自动启动应用程序以在被杀死后扫描信标,必须在自定义应用程序类的onCreate方法中配置RegionBootstrap,而不是活动。

有关详细信息,请参阅此处:the man page