Phiên đăng xuất trên thiết bị có nhiều người dùng?


10

Có một tùy chọn để chuyển đổi giữa những người dùng, nhưng không có tùy chọn nào để đăng xuất khỏi phiên người dùng đang hoạt động. Các ứng dụng và dịch vụ nền cho người dùng không hoạt động (một khi đã đăng nhập và tắt) tiếp tục chạy hết pin.

Cách duy nhất tôi nghĩ, là khởi động lại thiết bị và không đăng nhập người dùng.

Vì vậy, có cách nào mà chủ sở hữu có thể buộc người dùng không hoạt động tiếp theo đăng xuất phiên của họ không? Tôi có quyền truy cập siêu người dùng cho chủ sở hữu với android-5.0.2.

Câu trả lời:


7

Trong ứng dụng đầu cuối trên Android, nhập (yêu cầu quyền truy cập root):

su
am stop-user USER_ID

Ví dụ: Đối với người dùng Khách, USER_IDtrong thiết bị của tôi là 11lệnh nên có am stop-user 11.

am stop-user không xử lý nhiều đầu vào để bạn thực hiện lệnh cho mọi người dùng phụ mà bạn muốn tạm dừng.

Điều này hơi khác so với khởi động lại thiết bị. Nếu bạn kiểm tra amcách sử dụng bạn sẽ thấy,

am stop-user: stop execution of USER_ID, not allowing it to run any code until a later explicit start or switch to it.

Như đã nói, nó chỉ đơn giản là tạm dừng tất cả các hoạt động liên quan đến tài khoản người dùng đó, vì vậy bất cứ khi nào bắt đầu hoặc chuyển đổi rõ ràng, phiên của bạn sẽ tiếp tục thay vì bắt đầu lại từ đầu.

Để xác nhận rằng người dùng thực sự đã tạm dừng hoặc không chạy, hãy xem câu trả lời của tôi để biết cách tìm tên người dùng / ID hiện đang chạy từ ADB ?

Nói ngắn gọn, pm list usershoặc dumpsys activitysẽ cho bạn biết người dùng là RUNNINGhay SHUTDOWN. Lệnh sau là tốt hơn. Nếu phiên người dùng thực sự bị tạm dừng am stop-user, bạn sẽ thấy mState=SHUTDOWNngười dùng đó. Tuy nhiên, nếu người dùng chưa được kích hoạt ngay cả khi khởi động lại, bạn sẽ không thấy bất kỳ mục nào của nó.


như tôi am stopuser 10đã nói chỉ hiển thị pm list userslệnh khi người dùng không chạy. Tôi đã kiểm tra adb shell pssau am stop-user 10và có thể tìm thấy u10_axxcác quy trình đang chạy. Để kiểm tra xem chúng có bị dừng hay không, tôi đã thử chạy tập lệnh shell trong thiết bị đầu cuối trên người dùng thứ 2. Kịch bản lặp một câu lệnh echo mỗi giây (hiển thị giây). Sau khi bắt đầu tập lệnh này, sử dụng am stop-user 10lệnh, đợi 5 phút và bắt đầu lại phiên người dùng thứ 2, tôi có thể nói rằng tập lệnh không bị dừng. Nó chạy trong toàn bộ thời gian.
Bharat G

Phương pháp tôi đã sử dụng để cài đặt ứng dụng (thiết bị đầu cuối) trong người dùng thứ 2 của Android 5.0.2 là adb install -r app.apk. Không biết đó có phải là vấn đề không.
Bharat G

Tôi sẽ cập nhật cho bạn nếu tôi nhận được một cái gì đó liên quan đến ý kiến ​​của bạn.
Firelord

1
Tôi đã kiểm tra lệnh tương tự trên thiết bị của bạn bè android-5.1.1và nó hoạt động như đã nêu. Tôi chưa kiểm tra phần tập lệnh, nhưng khi phát hành am stop-user 10, tất cả các quy trình của người dùng thứ 2 đã bị giết và không được liệt kê trong Settings > Appshoặc bằng pslệnh. Vì vậy, đây là cách, nhưng android-5.0.2hiện tại hoặc là lỗi với lệnh này hoặc chức năng như vậy không được triển khai như phiên bản đó tôi đoán. Nhưng 5.1 có nhiều lỗi không thể chấp nhận hơn đối với tôi để chuyển đổi. Cảm ơn bạn :)
Bharat G
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.