Pour Android 8, 9, 10, et peut-être pour Nougat aussi je suppose, exécutez :
adb shell am get-current-user # returns USER_ID of the foreground user
adb shell cmd activity get-current-user # alternative command
Sinon, faites :
adb shell 'dumpsys activity | grep mCurrentUser'
Votre sortie serait :
mCurrentUser=0
0 est toujours l'identifiant du propriétaire (utilisateur principal). Tout autre numéro, par exemple 10 ou 11, correspond à un utilisateur secondaire (y compris l'utilisateur invité).
Pour Lollipop, entrez la commande :
adb shell dumpsys user
Vous obtiendriez quelque chose comme :
Users:
UserInfo{0:Owner\_lol:13} serialNo=0
Created:
Last logged in: +1m40s308ms ago
UserInfo{10:New user:10} serialNo=13
Created: +1h1m15s438ms ago
Last logged in: +6m2s390ms ago
Sur {0:Owner_lol:13}
0
est l'ID utilisateur de l'utilisateur ayant le nom d'utilisateur Owner_lol
.
Pour chaque utilisateur, vous verrez Last logged in:
temps. L'entrée dont l'heure est la plus proche de l'heure actuelle implique que l'utilisateur correspondant est actuellement en focus sur l'écran.
Étant donné que vous avez l'accès Root, vous pouvez voir tous ces détails à partir de l'onglet XML
de chacun des utilisateurs disponibles sous /data/system/users
.
C'est une autre question que mon Android 4.2.1 n'a pas donné Last Logged in:
le temps correctement.
Alternativement, dans Lollipop, vous pouvez le faire :
adb shell pm list users
Vous obtiendriez quelque chose comme :
Users:
UserInfo{0:Owner\_lol:13} running
UserInfo{10:New user:10}
Dans mon Android 4.2.1, je ne vois pas le texte "running", peut-être parce qu'il n'a pas été implémenté dans le code ou parce que l'appareil est mono-utilisateur.
Nota que si plusieurs utilisateurs sont connectés, vous verrez "running" pour tous les utilisateurs connectés.
user
( android.os.IUserManager
) est le service qui gère les utilisateurs dans le système. dumspsys
a simplement vidé la sortie demandée au service user
.
Vous pouvez alternativement interroger le service à condition de savoir quelle fonction interroger. Par exemple, dans mon Android 5.0.2, je peux entrer :
adb shell service call user 8
Cela me donne un fichier hexadécimal où je peux au moins voir le nom d'utilisateur et l'ID utilisateur, entre autres choses, de tous les utilisateurs du système.
Numéro 8
appelle une fonction particulière. Voir le code source de android.os.IUserManager
pour votre version Android aquí .
Editar :
Une autre méthode consiste à jeter un coup d'œil dans le activity
service.
adb shell dumpsys activity
Cherchez les quelques lignes après la ligne avec le texte mStartedUsers:
. Vous verriez quelque chose comme :
User #0: mState=RUNNING
User #10: mState=RUNNING
L'entrée numérique entre #
y :
est l'ID utilisateur d'un utilisateur.