0

Ich möchte Benutzer in bestimmten Zeitraum und Zeiten von Tagen verfolgen. Ich starte Alarm Manager alle 2 Minuten (ich bekomme regelmäßige Zeit vom Server und das ist dynamisch in meiner Anwendung) und versuche, den Standort etwa eine Minute zu bekommen, danach hörte ich auf, den Standort zu bekommen, und ich speichere den Standort, der auf DB genommen wurde. Wie dem auch sei, dieser Ansatz läuft sehr gut, aber in der Stufe 23 und darüber kann meine Anwendung für den Schlaf- und Standby-Modus nicht gut laufen und Alarme nicht in einer bestimmten Zeit aufrufen! Ich verwendete setExactAndAllowWhileIdle Methode für API-Ebene 23 und darüber, aber nicht gut gearbeitet.Benutzer regelmäßig im Doze-Modus verfolgen

Die Dokumente sagten, ich kann nicht mehr Alarme im Dösen und Standby-Modus verwenden. Meine Frage ist, wie kann Benutzer in android 6 und höher verfolgen?

Antwort

0

Während der Arbeit mit Alarm in dösen, verwenden Sie setAlarmClock() anstelle von set() wie es speziell für Alarm Clocks konzipiert ist, so kann es auch in dösen laufen.

Alternativ

Haben Sie jemals gehört von Firebase-job-dispatcher?

JobDispatcher Firebase ist eine Open-Source-Bibliothek, die ein API ähnlich wie in der Jobscheduler Android Plattform zur Verfügung stellt. Firebase JobDispatcher dient als JobScheduler-Kompatibilitätsschicht für Apps Targeting-Versionen von Android niedriger als 5.0 (API-Ebene 21).

Firebase JobDispatcher unterstützt die Verwendung von Google Play-Diensten als Implementierung für den Versand (Laufen) Jobs, aber die Bibliothek auch ermöglicht es Ihnen, andere Implementierungen zu definieren und verwenden: Zum Beispiel, Sie können entscheiden, ob Jobscheduler zu verwenden oder schreibe deinen eigenen, benutzerdefinierten Code. Aufgrund dieser Vielseitigkeit empfehlen wir Ihnen, diesen Firebase JobDispatcher zu verwenden, wenn Ihre App auf eine Version von Android mit weniger als 5.0 (API-Stufe 21) abzielt.

Sie sollten dafür gehen. Sie haben auch ziemlich gute Konfigurationstechniken.

+0

Danke aber mein Programm funktioniert gut in API-Ebene 23 und niedriger. Mein Problem ist in API Level 23 .. und ich denke, ich brauche diese Bibliothek nicht zu benutzen. – Fahim

+0

Ja, im Fall von 'AlarmManager', überprüfe' setAlarmClock() 'stattdessen. Siehe meine Bearbeitung. – Wizard

+0

setAlarmClock zeigt eine Benachrichtigung an Benutzer, aber ich möchte keine Benachrichtigung und etc für Benutzer anzeigen. – Fahim

Verwandte Themen