后台iBeacon检查间隔时间



我正在试验Android Beacon Library在后台监控iBeacon的代码:

public class IBeaconBootstrap extends Application implements BootstrapNotifier {
private RegionBootstrap regionBootstrap;
@Override
public void onCreate() {
   super.onCreate();
   Log.d("IBeaconBootstrap", "App started up");
   // wake up the app when any beacon is seen (you can specify specific id
   // filers in the parameters below)
   Region region = new Region("MyRegion", null, null, null);
   regionBootstrap = new RegionBootstrap(this, region);
   // This is for Apple compatible iBeacons
   BeaconManager.getInstanceForApplication(this).getBeaconParsers().add(new     BeaconParser().setBeaconLayout("m:0-3=4c000215,i:4-19,i:20-21,i:22-23,p:24-24"));
}
@Override
public void didDetermineStateForRegion(int state, Region region) {
   Log.d("Boostrap didDetermineStateForRegion", "Region " + region.toString());
}
@Override
public void didEnterRegion(Region region) {
   Log.d("Boostrap didEnterRegion", "Got a didEnterRegion call");
   intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
   this.startActivity(intent);
}
@Override
public void didExitRegion(Region region) {
   Log.d("Boostrap didExitRegion", "Got a didExitRegion call");
}
}

当应用程序启动时,它每3/5分钟检查是否有iBeacon在附近,并将应用程序带到前台。

我实际上需要一个更及时的响应,有没有办法静态/动态地改变检查间隔?

这是完全可以配置的代码,像这样:

// set the duration of the scan to be 1.1 seconds
beaconManager.setBackgroundScanPeriod(1100l); 
// set the time between each scan to be 1 minute (60 seconds)
beaconManager.setBackgroundBetweenScanPeriod(60000l);

这样做时要小心,因为更频繁的后台扫描会影响电池寿命。在这里看到的:

http://altbeacon.github.io/android-beacon-library/battery_manager.html

相关内容

  • 没有找到相关文章

最新更新