デバイス管理を有効にして(DevicePolicyManager)インストールしたアプリを作成しました。しかし、それをアンインストールしたい場合、このメッセージで失敗を返します
警告/ PackageManager(69):パッケージを削除しないcom.mypackage.test:アクティブなデバイス管理者がいます
どうすればアンインストールできますか、またはプログラムでアンインストールできますか?ありがとう。
回答:
[設定]-> [場所とセキュリティ]-> [デバイス管理者]に移動し、アンインストールする管理者の選択を解除します。
次に、アプリケーションをアンインストールします。それでもアンインストールする前にアプリケーションを非アクティブ化する必要があると表示される場合は、アンインストールする前にアプリケーションを強制的に停止する必要があります。
新しいDevicePolicyManagerを作成してから、アプリのボタンのonClickListenerからremoveAdmin(adminReceiver)を使用することもできます。
//set the onClickListener here
{
ComponentName devAdminReceiver = new ComponentName(context, deviceAdminReceiver.class);
DevicePolicyManager dpm = (DevicePolicyManager)context.getSystemService(Context.DEVICE_POLICY_SERVICE);
dpm.removeActiveAdmin(devAdminReceiver);
}
そして、あなたはアンインストールすることができます
onDisableRequested
adminクラスを使用してデバイスをロックするコードを含めることができます。次に、ユーザーは選択したパスワード(アプリのパスワードなど)を使用して電話のロックを解除する必要があります。次に、管理者を実際に無効にするには、ユーザーはアプリに移動してアプリ内のボタンをクリックする必要があります。もちろん、ユーザーがadminを無効にできないようにする場合は、ユーザーが無効にしようとするとデバイスがロックされることをユーザーに明確に伝える必要があります。
onDisableRequested
ユーザーがシステム設定で[無効にする]をクリックした直後に呼び出されることに注意してください。この時点で、AdminReceiverコードは何かを行うことができます-デバイスをロックしたり、デバイスをワイプしたりしますが、ユーザーにさらに質問したり、警告を表示したり、ユーザーに確信があるかどうかを尋ねたりする方法はありません。から表示するダイアログやアクティビティonDisableRequested
はすべて表示されますが、ユーザーは[戻る]ボタンを使用してそれらを閉じるだけで、管理者は無効になり、アプリはそれを防ぐために何も実行しません。
Redmi / xiaomiユーザー
"Settings" -> "Password & security" -> "Privacy" -> "Special app access" -> "Device admin apps"
アンインストールするアカウントに移動して選択します。
または単に
[設定]-> [デバイス管理アプリ]を検索->アンインストールするアカウントをクリックして選択します。