การออกจากระบบเซสชันบนอุปกรณ์ที่มีผู้ใช้หลายคน?


10

มีตัวเลือกให้สลับระหว่างผู้ใช้ แต่ไม่มีตัวเลือกในการออกจากระบบจากเซสชันผู้ใช้ที่ใช้งานอยู่ แอปพื้นหลังและบริการสำหรับผู้ใช้ที่ไม่ได้ใช้งาน (เมื่อเข้าสู่ระบบและปิดสวิตช์) ยังคงใช้พลังงานจากแบตเตอรี่ต่อไป

วิธีเดียวที่ฉันคิดคือรีบูตอุปกรณ์และไม่เข้าสู่ระบบของผู้ใช้

ดังนั้นมีวิธีใดที่เจ้าของสามารถบังคับให้ผู้ใช้ที่ไม่ใช้งานในภายหลังออกจากระบบเซสชันได้ ฉันมีการเข้าถึง superuser android-5.0.2กับเจ้าของด้วย

คำตอบ:


7

ในแอปเทอร์มินัลบน Android ให้ป้อน (ต้องมีการเข้าถึงรูท):

su
am stop-user USER_ID

เช่นสำหรับผู้ใช้ทั่วไปมัน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.

ตามที่กล่าวไว้มันจะหยุดกิจกรรมทั้งหมดที่เกี่ยวข้องกับบัญชีผู้ใช้นั้นชั่วคราวดังนั้นเมื่อใดก็ตามที่มีการเริ่มต้นหรือเปลี่ยนอย่างชัดเจนให้เซสชันของคุณจะทำงานต่อแทนที่จะเริ่มจากศูนย์

สำหรับการยืนยันว่าผู้ใช้หยุดทำงานชั่วคราวหรือไม่ทำงานให้ดูคำตอบของฉันสำหรับวิธีการค้นหาชื่อผู้ใช้ / ID จาก ADB ในปัจจุบัน ?

สั้น ๆ , pm list usersหรือdumpsys activityจะบอกคุณได้ว่าผู้ใช้หรือRUNNING SHUTDOWNคำสั่งหลังดีกว่า หากมีการหยุดเซสชันผู้ใช้am stop-userคุณจะเห็นmState=SHUTDOWNผู้ใช้รายนั้น อย่างไรก็ตามหากผู้ใช้ไม่ได้เปิดใช้งานแม้แต่ครั้งเดียวหลังจากรีบูตคุณจะไม่เห็นรายการใด ๆ


อย่างที่ฉันบอกam stopuser 10ก็แค่แสดงpm list usersคำสั่งขณะที่ผู้ใช้ไม่ได้ทำงาน ฉันตรวจสอบadb shell psหลังจากam stop-user 10และสามารถค้นหาu10_axxกระบวนการทำงาน เพื่อตรวจสอบว่าพวกเขาหยุดทำงานหรือไม่ฉันลองใช้เชลล์สคริปต์ในเทอร์มินัลกับผู้ใช้คนที่สอง สคริปต์วนรอบคำสั่ง echo ทุกวินาที (แสดงวินาที) หลังจากเริ่มต้นสคริปต์นี้โดยใช้am stop-user 10คำสั่งรอ 5 นาทีและเริ่มเซสชันผู้ใช้ที่สองอีกครั้งฉันสามารถพูดได้ว่าสคริปต์นั้นไม่ได้หยุด มันวิ่งตลอดเวลา
Bharat G

วิธีที่ผมใช้สำหรับการติดตั้งแอพพลิเค (Terminal) ในผู้ใช้ที่ 2 ของหุ่นยนต์ 5.0.2 adb install -r app.apkโดย ไม่ทราบว่าเป็นปัญหาหรือไม่
Bharat G

ฉันจะอัปเดตคุณหากฉันได้รับสิ่งที่เกี่ยวข้องกับความคิดเห็นของคุณ
Firelord

1
ฉันได้ตรวจสอบคำสั่งเดียวกันบนอุปกรณ์ของเพื่อนด้วยandroid-5.1.1และมันทำงานได้ตามที่ระบุไว้ ฉันไม่ได้ตรวจสอบส่วนของสคริปต์ แต่ในการออกam stop-user 10กระบวนการทั้งหมดของผู้ใช้คนที่ 2 ถูกฆ่าและไม่ได้อยู่ในรายการSettings > Appsหรือด้วยpsคำสั่ง ดังนั้นมันเป็นวิธีการ แต่android-5.0.2ในปัจจุบันเป็นรถกับคำสั่งนี้หรือฟังก์ชั่นดังกล่าวไม่ได้ดำเนินการตามรุ่นที่ฉันเดา แต่ 5.1 มีข้อบกพร่องมากเกินไปสำหรับฉันที่จะเปลี่ยน ขอบคุณ :)
Bharat G
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.