답변:
Android의 터미널 앱에서 다음을 입력하십시오 (루트 액세스 필요).
su
am stop-user USER_ID
예를 들어 Guest 사용자의 경우 USER_ID
내 장치에 11
있으므로 명령은 다음과 같습니다 am stop-user 11
.
am stop-user
여러 입력을 처리하지 않으므로 일시 중지하려는 모든 보조 사용자에 대해 명령을 실행해야합니다.
이것은 장치를 다시 시작하는 것과 약간 다릅니다. 당신이 선택하면 am
'의 사용을 당신은 볼 것이다
am stop-user: stop execution of USER_ID, not allowing it to run any code until a later explicit start or switch to it.
말했듯이, 단순히 해당 사용자 계정과 관련된 모든 활동을 일시 중지하므로 명시 적 시작 또는 전환이 제공 될 때마다 세션이 처음부터 시작되지 않고 다시 시작됩니다.
사용자가 실제로 일시 중지되었거나 실행되고 있지 않다는 확인을 위해 ADB에서 현재 실행중인 사용자 이름 / ID를 찾는 방법에 대한 내 대답을 참조하십시오 .
간단히, pm list users
또는 dumpsys activity
사용자가 RUNNING
또는 인지 여부를 알려줍니다 SHUTDOWN
. 후자의 명령이 더 좋습니다. 사용자 세션이 실제로 중단 am stop-user
되면 mState=SHUTDOWN
해당 사용자에게 표시됩니다. 그러나 재부팅 이후에도 사용자가 한 번도 활성화되지 않으면 해당 항목이 표시되지 않습니다.
adb install -r app.apk
. 그것이 문제인지 모릅니다.
android-5.1.1
했으며 명시된대로 작동했습니다. 스크립트 부분을 확인하지는 않았지만 발행 am stop-user 10
하면 두 번째 사용자의 모든 프로세스가 종료 Settings > Apps
되고 ps
명령 에 포함 되거나 명령 과 함께 나열되지 않습니다 . 따라서 방법이지만 android-5.0.2
현재이 명령으로 버그가 있거나 해당 기능이 해당 버전으로 구현되지 않았습니다. 그러나 5.1에는 더 견딜 수없는 버그가 있습니다. 감사합니다 :)
am stopuser 10
이pm list users
사용자가 실행하지 않는 명령 만 표시 하고있었습니다. 확인adb shell ps
후 실행중인 프로세스am stop-user 10
를 찾을 수 있습니다u10_axx
. 중단되었는지 확인하기 위해 두 번째 사용자의 터미널에서 쉘 스크립트를 실행하려고했습니다. 스크립트는 매 초마다 반향 문을 반복합니다 (초 표시). 이 스크립트를 시작한 후am stop-user 10
명령을 사용하여 5 분 동안 기다렸다가 두 번째 사용자 세션을 다시 시작하면 스크립트가 중지되지 않았다고 말할 수 있습니다. 그것은 전체 시간 동안 달렸다.