Phonegap Android: Verhindern Sie, dass Schlaf durch Programatic Benutzer-Aktivität
Ich habe eine Phonegap-Android-app, scannt die RFID-chips. Scheinbar Scannen von RFID zählt nicht als Aktion des Benutzers, da das Gerät in den Standbymodus, wenn Sie das Intervall festlegen, in Android-Einstellungen (die maximal 10 Minuten).
Also trotz ständigem Scannen, mein Gerät wird schlafen gehen. Also brauche ich eine Möglichkeit zu sagen, das OS, dass ich aktiv bin, programtically nach jedem RFID-scan.
Derzeit bin ich etwas, dass ich nicht wollen, das ist mit
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
um zu verhindern, dass Schlaf, während die app läuft, aber ich würde gerne weiterhin in der Lage, verwenden Sie die sleep-Intervall, wenn das Gerät tatsächlich inaktiv.
Ich hatte große Hoffnungen für die Verwendung powerManager.userActivity(l, false)
aber anscheinend ist dies nur für System-apps, so kann ich mich nicht festlegen von Berechtigungen für Sie.
Irgendwelche Ideen, wie halten Sie das Gerät aktiviert, auch wenn Sie nicht tun, jede Touchscreen-Interaktion?
- Haben Sie versucht, mit
PowerManager.newWakeLock()?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie das cordova-plugin
Vorzubeugen schlafen Sie rufen:
zuzulassen und wieder schlafen:
Werden Sie brauchen, um zu spielen mit JAVA ein wenig.
Fügen Sie diesen code in Ihre activity class:
Hier finden Sie mehr info.
Auch nicht vergessen zu relese WakeLock am Ende:
Müssen Sie auch sicher sein, Sie haben die WAKE_LOCK permission set-in Ihrem Manifest.
Einen WakeLock ist die Antwort, aber der Schlüssel ist, zu verwenden
ON_AFTER_RELEASE
. Mit dieser Option werden die Benutzer-Aktivität-timer wird zurückgesetzt, wenn der WakeLock ist veröffentlicht.Also für die NFC-plugin, unter der onPause Methode, die ich Hinzugefügt:
Und unter der onResume Methode, die ich Hinzugefügt:
Mit dieser Anordnung, wenn ein RFID-chip gescannt ist, wird der NFC-plugin erstellt WakeLock und dann loslassen, das setzt die Aktivität timer. Außerdem habe ich
SCREEN_BRIGHT_WAKE_LOCK
obwohl es veraltet ist, wie dies erhellen den Bildschirm, wenn Sie gegangen ist, dim.