我正在使用radiusnetworks的ibeacon服务。但它总是在第一秒扫描下一个munites。我怎么能每10秒触发一次?
触发beaconserviceutility:
private void startBackgroundScan() {
alarm.setInexactRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(), 6000, pintent);
context.startService(iService);
}
private static void generateNotification(Context context, String message) {
Intent launchIntent = new Intent(context, MonitoringActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_SINGLE_TOP);
((NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE)).notify(
0,
new NotificationCompat.Builder(context).setWhen(System.currentTimeMillis())
.setSmallIcon(R.drawable.ic_launcher).setTicker(message)
.setContentTitle(context.getString(R.string.app_name)).setContentText(message)
.setContentIntent(PendingIntent.getActivity(context, 0, launchIntent, 0)).setAutoCancel(true)
.build());
}
我每6秒触发一次,但它总是在下一个munite运行。例如,它在13:00:00工作,下一次扫描在13:01:00。
如何改变它并每隔10秒触发一次?感谢
答案 0 :(得分:0)
如果您使用Android Beacon Library,则无需设置任何警报或计时器,以使其定期在后台扫描信标。它会自动完成,您可以配置频率。
您可以在此处的“在后台启动应用”部分中看到如何进行设置的示例:http://altbeacon.github.io/android-beacon-library/samples.html
为了自定义它以在后台每隔10秒对信标进行两秒扫描,您修改上面引用的示例代码以添加下面的三行:
Region region = new Region("com.example.myapp.boostrapRegion", null, null, null);
regionBootstrap = new RegionBootstrap(this, region);
BeaconManager manager = BeaconManager.getInstanceForApplication(this);
manager.setBackgroundBetweenScanPeriod(10000l); // 10 seconds
manager.setBackgroundScanPeriod(2000l); // 2 seconds
您可以在此处详细了解如何自定义扫描间隔:http://altbeacon.github.io/android-beacon-library/battery_manager.html