Logout sesi pada perangkat dengan banyak pengguna?

10

Ada opsi untuk beralih antar pengguna, tetapi tidak ada opsi untuk keluar dari sesi pengguna aktif. Aplikasi dan layanan latar belakang untuk pengguna yang tidak aktif (setelah login dan dimatikan) terus menjalankan pengeringan baterai.

Satu-satunya cara saya pikir, adalah me-reboot perangkat dan tidak login pengguna.

Jadi, adakah cara agar pemilik dapat memaksa pengguna tidak aktif berikutnya untuk keluar dari sesi mereka? Saya memiliki akses superuser ke pemilik android-5.0.2.

Bharat G
sumber

Jawaban:

7

Di aplikasi terminal di Android, masukkan (memerlukan akses root):

su
am stop-user USER_ID

Misalnya Untuk pengguna tamu, ini ada USER_IDdi perangkat saya 11sehingga perintahnya adalah am stop-user 11.

am stop-user tidak memproses beberapa input sehingga Anda harus menjalankan perintah untuk setiap pengguna sekunder yang ingin Anda jeda.

Ini agak berbeda dari memulai ulang perangkat. Jika Anda memeriksa ampenggunaan Anda akan melihat,

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

Seperti yang dikatakan, itu hanya menjeda semua kegiatan yang terkait dengan akun pengguna itu, jadi setiap kali memulai atau beralih secara eksplisit disediakan sesi Anda akan dilanjutkan daripada mulai dari awal.

Untuk konfirmasi bahwa pengguna memang telah menjeda atau tidak berjalan, lihat jawaban saya untuk Cara mengetahui nama / ID pengguna yang saat ini berjalan dari ADB ?

Secara singkat, pm list usersatau dumpsys activityakan memberi tahu Anda apakah pengguna RUNNINGatau SHUTDOWN. Perintah terakhir lebih baik. Jika sesi pengguna memang dihentikan am stop-user, Anda akan melihat mState=SHUTDOWNuntuk pengguna itu. Namun, jika pengguna belum diaktifkan bahkan sekali sejak reboot, Anda tidak akan melihat entri apa pun.

Firelord
sumber
seperti saya katakan am stopuser 10hanya menunjukkan pm list usersperintah sebagai pengguna tidak berjalan. Saya memeriksa adb shell pssetelah am stop-user 10dan dapat menemukan u10_axxproses berjalan. Untuk memeriksa apakah mereka terhenti, saya mencoba menjalankan skrip shell di terminal pada pengguna kedua. Script mengulang pernyataan gema setiap detik (menampilkan detik). Setelah memulai skrip ini, menggunakan am stop-user 10perintah, menunggu 5 menit dan memulai kembali sesi pengguna ke-2, saya dapat mengatakan bahwa skrip tidak dihentikan. Itu berlari sepanjang waktu.
Bharat G
Metode yang saya gunakan untuk menginstal aplikasi (terminal) pada pengguna ke-2 Android 5.0.2 adalah dengan adb install -r app.apk. Tidak tahu apakah itu masalahnya.
Bharat G
Saya akan memperbarui Anda jika saya mendapatkan sesuatu yang relevan dengan komentar Anda.
Firelord
1
Saya telah memeriksa perintah yang sama pada perangkat teman android-5.1.1dan itu berfungsi seperti yang dinyatakan. Saya belum memeriksa bagian skrip, tetapi pada penerbitan am stop-user 10, semua proses pengguna ke-2 terbunuh dan tidak terdaftar dalam Settings > Appsatau dengan psperintah. Jadi, memang begitulah caranya, tetapi android-5.0.2saat ini sedang bermasalah dengan perintah ini, atau fungsionalitas seperti itu tidak diimplementasikan pada versi yang saya kira. Tetapi 5.1 memiliki lebih banyak bug yang tidak dapat ditolerir bagi saya untuk beralih. Terima kasih :)
Bharat G