Es gibt eine Option zum Wechseln zwischen Benutzern, aber keine Option zum Abmelden von einer aktiven Benutzersitzung. Die Hintergrund-Apps und -Dienste für inaktive Benutzer (einmal angemeldet und abgemeldet) laufen weiter und belasten den Akku.
Ich denke, die einzige Möglichkeit besteht darin, das Gerät neu zu starten und den Benutzer nicht anzumelden.
Gibt es also eine Möglichkeit, dass der Eigentümer nachfolgende inaktive Benutzer dazu zwingen kann, sich von ihrer Sitzung abzumelden? Ich habe Superuser-Zugriff auf den Eigentümer mit android-5.0.2
.
Geben Sie in einer Terminal-App auf Android (erfordert Root-Zugriff) Folgendes ein:
su
am stop-user USER_ID
Für einen Gastbenutzer ist es beispielsweise USER_ID
in meinem Gerät 11
so, dass der Befehl am stop-user 11
.
am stop-user
verarbeitet keine Mehrfacheingaben, daher müssen Sie den Befehl für jeden sekundären Benutzer ausführen, den Sie anhalten möchten.
Dies unterscheidet sich etwas vom Neustart des Geräts. Wenn Sie die am
Nutzung von überprüfen, sehen Sie,
am stop-user: stop execution of USER_ID, not allowing it to run any code until a later explicit start or switch to it.
Wie gesagt, es hält einfach alle Aktivitäten an, die mit diesem Benutzerkonto verbunden sind, sodass Ihre Sitzung immer dann fortgesetzt wird, wenn ein expliziter Start oder Wechsel erfolgt, anstatt von vorne zu beginnen.
Zur Bestätigung, dass der Benutzer tatsächlich angehalten hat oder nicht ausgeführt wird, siehe meine Antwort für Wie finde ich den aktuell laufenden Benutzernamen/die ID von ADB heraus ?
Kurz gesagt, pm list users
oder dumpsys activity
würde Ihnen sagen, ob der Benutzer RUNNING
oder ist SHUTDOWN
. Der letztere Befehl ist besser. Wenn die Benutzersitzung tatsächlich von angehalten wird am stop-user
, würden Sie mState=SHUTDOWN
für diesen Benutzer sehen. Wenn der Benutzer jedoch seit dem Neustart nicht einmal aktiviert wurde, sehen Sie keinen seiner Einträge.
am stopuser 10
wurde nur der pm list users
Befehl als Benutzer angezeigt, der nicht ausgeführt wird. adb shell ps
Ich habe danach nachgesehen am stop-user 10
und kann u10_axx
Prozesse finden, die ausgeführt werden. Um zu überprüfen, ob sie angehalten sind, habe ich versucht, ein Shell-Skript in einem Terminal für den 2. Benutzer auszuführen. Das Skript wiederholt jede Sekunde eine Echo-Anweisung (zeigt Sekunde an). Nachdem ich dieses Skript gestartet habe, den am stop-user 10
Befehl verwendet, 5 Minuten gewartet und die zweite Benutzersitzung neu gestartet habe, kann ich sagen, dass das Skript nicht angehalten wurde. Es lief die ganze Zeit.adb install -r app.apk
. Weiß nicht, ob es daran liegt.android-5.1.1
und es hat wie angegeben funktioniert. Ich habe den Skriptteil nicht überprüft, aber beim Ausgeben am stop-user 10
wurden alle Prozesse des zweiten Benutzers beendet und sind nicht in Settings > Apps
oder mit dem ps
Befehl aufgeführt. So ist es also, aber android-5.0.2
derzeit ist dieser Befehl entweder fehlerhaft, oder eine solche Funktionalität ist ab dieser Version nicht implementiert, denke ich. Aber 5.1 hat noch mehr unerträgliche Bugs für mich umzustellen. Danke dir :)
Jonathan Kreuz