2015-04-30 2 views
0

i m используя сервис ibeacon radiusnetworks. но он всегда сканирует следующие мунниты в первые секунды. как я могу запускать его каждые 10 секунд?radiusnetworks ibeacon service background trigger на android

триггер на beaconserviceutility:

private void startBackgroundScan() { 

alarm.setInexactRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(), 6000, pintent); 

    context.startService(iService); 
} 

уведомление на beaconservice:

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

Если вы используете 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

+0

привет, мой beaconmanager не имеет setBa Методы ckgroundBetweenScanPeriod и setBackgroundScanPeriod. –

+0

Какая библиотека и версия вы используете? – davidgyoung

+0

i м конце .. radiusnetworks. Я использовал это, https://github.com/RadiusNetworks/android-ibeacon-service –