題:
設備上有多個用戶的會話註銷?
Bharat G
2015-10-11 06:07:40 UTC
view on stackexchange narkive permalink

有一個選項可以在用戶之間切換,但是沒有一個選項可以從活動的用戶會話中註銷。非活動用戶(登錄並關閉後)的後台應用程序和服務繼續消耗電池電量。

我認為的唯一方法是重新啟動設備,而不登錄用戶。

那麼,所有者有什麼辦法可以迫使隨後的不活動用戶註銷其會話?我可以通過 android-5.0.2 對所有者擁有超級用戶訪問權限。

一 回答:
Firelord
2015-10-11 16:56:43 UTC
view on stackexchange narkive permalink

在Android的終端應用程序中,輸入(需要root訪問權限):

  suam停止用戶USER_ID  

例如對於來賓用戶,其在我的設備中的 USER_ID 11 ,因此該命令為 am stop-user 11

上午停止用戶不會處理多個輸入,因此您必須為要暫停的每個輔助用戶執行命令。

這與重啟設備有點不同。如果檢查 am 的使用情況,將會看到

  am stop-user:停止執行USER_ID,直到稍後顯式啟動之前,它不允許運行任何代碼。  

如上所述,它只是暫停與該用戶帳戶相關的所有活動,因此,只要提供明確的啟動或切換,您的會話就會恢復,而不是從頭開始。

要確認用戶確實已暫停或未運行,請查看我對如何從ADB中查找當前正在運行的用戶名/ ID的答案

簡而言之, pm列出用戶 dumpsys活動會告訴您該用戶是 RUNNING 還是 SHUTDOWN 。後一個命令更好。如果確實是 am stop-user 暫停了用戶會話,則您會看到該用戶的 mState = SHUTDOWN 。但是,如果自重啟以來一次都沒有激活用戶,則不會看到其任何條目。

就像我說的那樣,“ am stopuser 10”僅在用戶未運行時顯示“ pm list users”命令。我在“ am stop-user 10”之後檢查了“ adb shell ps”,並且發現“ u10_axx”進程正在運行。為了檢查它們是否停止,我嘗試在第二個用戶的終端上運行shell腳本。該腳本每秒循環一個echo語句(顯示秒)。使用“ am stop-user 10”命令啟動此腳本後,等待5分鐘並重新啟動第二個用戶會話,可以說該腳本未停止。它一直運行著。
我在android 5.0.2的第二個用戶中安裝應用程序(終端)的方法是通過`adb install -r app.apk`進行的。不知道這是否是問題。
如果收到與您的評論有關的信息,我會及時更新。
我已經用android-5.1.1在朋友的設備上檢查了相同的命令,它按照說明工作。我沒有檢查腳本部分,但是在發出“ am stop-user 10”時,第二個用戶的所有進程都被殺死,並且未在“設置”>“應用”或“ ps”命令中列出。因此,它就是這種方式,但是“ android-5.0.2”當前不是此命令的錯誤,或者我猜該功能在該版本上尚未實現。但是5.1有更多無法忍受的錯誤可供我切換。謝謝 :)


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...