Dans une application de terminal sur Android, entrez (nécessite un accès root):
su
am stop-user USER_ID
Par exemple, pour un utilisateur invité, son USER_ID
dans mon appareil est 11
ainsi la commande serait am stop-user 11
.
am stop-user
ne traite pas les entrées multiples, vous devez donc exécuter la commande pour chaque utilisateur secondaire que vous souhaitez suspendre.
C'est un peu différent du redémarrage de l'appareil. Si vous vérifiez am
l'utilisation que vous verriez,
am stop-user: stop execution of USER_ID, not allowing it to run any code until a later explicit start or switch to it.
Comme indiqué, cela met simplement en pause toutes les activités associées à ce compte d'utilisateur, donc chaque fois qu'un démarrage ou un changement explicite est fourni, votre session reprendra plutôt que de recommencer à zéro.
Pour confirmer que l'utilisateur a bien mis en pause ou n'est pas en cours d'exécution, consultez ma réponse pour savoir comment trouver le nom d'utilisateur / ID en cours d'exécution à partir d'ADB ?
En bref, pm list users
ou dumpsys activity
vous dirait si l'utilisateur est RUNNING
ou SHUTDOWN
. Cette dernière commande est meilleure. Si la session utilisateur est effectivement interrompue par am stop-user
, vous verriez mState=SHUTDOWN
pour cet utilisateur. Cependant, si l'utilisateur n'a pas été activé une seule fois depuis le redémarrage, vous ne verrez aucune de ses entrées.
am stopuser 10
ne montrait que lapm list users
commande en tant qu'utilisateur ne fonctionnant pas. J'ai vérifiéadb shell ps
aprèsam stop-user 10
et je peux trouver desu10_axx
processus en cours d'exécution. Pour vérifier s'ils sont arrêtés, j'ai essayé d'exécuter un script shell dans un terminal sur le 2ème utilisateur. Le script boucle une instruction echo chaque seconde (affichant la seconde). Après avoir démarré ce script, utilisé laam stop-user 10
commande, attendu 5min et relancé la 2ème session utilisateur, je peux dire que le script n'est pas arrêté. Il a fonctionné pendant tout le temps.