여러 사용자가있는 장치에서 세션 로그 아웃?


10

사용자간에 전환하는 옵션이 있지만 활성 사용자 세션에서 로그 아웃하는 옵션은 없습니다. 비활성 사용자 (로그인 한 후 스위치 해제 된)를위한 백그라운드 앱 및 서비스는 계속 배터리를 소모합니다.

내가 생각하는 유일한 방법은 장치를 재부팅하고 사용자를 로그인하지 않는 것입니다.

그렇다면 소유자가 후속 비활성 사용자가 세션에서 로그 아웃하도록 할 수있는 방법이 있습니까? 으로 소유자에게 슈퍼 유저 액세스 권한이 android-5.0.2있습니다.

답변:


7

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해당 사용자에게 표시됩니다. 그러나 재부팅 이후에도 사용자가 한 번도 활성화되지 않으면 해당 항목이 표시되지 않습니다.


내가 말했듯 am stopuser 10pm list users사용자가 실행하지 않는 명령 만 표시 하고있었습니다. 확인 adb shell ps후 실행중인 프로세스 am stop-user 10를 찾을 수 있습니다 u10_axx. 중단되었는지 확인하기 위해 두 번째 사용자의 터미널에서 쉘 스크립트를 실행하려고했습니다. 스크립트는 매 초마다 반향 문을 반복합니다 (초 표시). 이 스크립트를 시작한 후 am stop-user 10명령을 사용하여 5 분 동안 기다렸다가 두 번째 사용자 세션을 다시 시작하면 스크립트가 중지되지 않았다고 말할 수 있습니다. 그것은 전체 시간 동안 달렸다.
Bharat G

android 5.0.2의 두 번째 사용자에게 앱 (터미널)을 설치하는 데 사용한 방법은입니다 adb install -r app.apk. 그것이 문제인지 모릅니다.
Bharat G

귀하의 의견과 관련이있는 경우 업데이트하겠습니다.
Firelord

1
친구의 장치에서 동일한 명령을 확인 android-5.1.1했으며 명시된대로 작동했습니다. 스크립트 부분을 확인하지는 않았지만 발행 am stop-user 10하면 두 번째 사용자의 모든 프로세스가 종료 Settings > Apps되고 ps명령 에 포함 되거나 명령 과 함께 나열되지 않습니다 . 따라서 방법이지만 android-5.0.2현재이 명령으로 버그가 있거나 해당 기능이 해당 버전으로 구현되지 않았습니다. 그러나 5.1에는 더 견딜 수없는 버그가 있습니다. 감사합니다 :)
Bharat G
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.