複数のユーザーがいるデバイスでセッションログアウトしますか?


10

ユーザーを切り替えるオプションはありますが、アクティブなユーザーセッションからログアウトするオプションはありません。非アクティブなユーザー用のバックグラウンドアプリとサービス(ログインして切り替えた後)は、バッテリーを消耗し続けます。

私が考える唯一の方法は、デバイスを再起動してユーザーにログインしないことです。

それでは、所有者が後続の非アクティブなユーザーにセッションのログアウトを強制する方法はありますか?所有者へのスーパーユーザーアクセス権があります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.

前述のように、そのユーザーアカウントに関連付けられているすべてのアクティビティを一時停止するだけなので、明示的な開始または切り替えが提供されると、セッションは最初からではなく再開されます。

ユーザーが実際に一時停止または実行されていないことの確認については、ADBから現在実行中のユーザー名/ IDを見つける方法についての私の回答を参照してください。

簡単に言えば、pm list usersまたはdumpsys activityユーザーがあるかどうかを言うだろうRUNNINGSHUTDOWN。後者のコマンドの方が優れています。ユーザーセッションが実際にによって停止されている場合am stop-usermState=SHUTDOWN、そのユーザーについて表示されます。ただし、再起動後にユーザーが一度もアクティブ化されていない場合、そのエントリは表示されません。


私が言っam stopuser 10たようにpm list users、ユーザーが実行していないときにコマンドを表示するだけでした。確認しadb shell psたところam stop-user 10u10_axx実行中のプロセスが見つかりました。停止しているかどうかを確認するために、2番目のユーザーのターミナルでシェルスクリプトを実行してみました。スクリプトは、1秒ごとにエコーステートメントをループします(1秒ごとに表示)。このスクリプトを開始した後、am stop-user 10コマンドを使用して5分間待機し、2番目のユーザーセッションを再開すると、スクリプトは停止していません。それはずっと実行されていました。
Bharat G

Android 5.0.2の2番目のユーザーにアプリ(端末)をインストールするために使用した方法は、によるものadb install -r app.apkです。それが問題かどうかわからない。
Bharat G

コメントに関連する情報がありましたら更新します。
ファイアロード

1
私は友人のデバイスで同じコマンドをチェックしました、android-5.1.1そしてそれは述べられたように働きました。私はスクリプト部分をチェックしていませんが、発行時にam stop-user 10、2番目のユーザーのすべてのプロセスが強制終了されSettings > Appspsコマンドにまたはコマンドとともにリストされていません。だから、それは方法ですが、android-5.0.2現在このコマンドにはバグがあるか、そのような機能がそのバージョンの時点では実装されていないと思います。しかし、5.1にはまだ耐えられないバグがあります。ありがとうございました:)
Bharat G
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.