Device Owner を解除する方法
個人的な備忘を兼ねたDevice Ownerに関する小ネタです。
Device Ownerとは何か、をまとめるとめっちゃ長くなるので今回は割愛。ざっくり言うとAndroidでキオスク端末的なものを作るときに使える特殊権限です。
この権限があると通常アプリではできない様々な制御ができるようになります。ホームボタンの無効化とかアプリのサイレントインストールとか。
で、権限を割り当てるときは、Device Ownerに対応したアプリを作り、手順に沿ってキッティングします。
この権限を解除したいときの操作が今回の本題です。やり方は3つあります。
端末初期化
これが一番確実。端末を初期化すると権限も解除されます。当たり前っちゃ当たり前。
プログラムで処理
プログラム内で DevicePolicyManager.clearDeviceOwnerApp()
を呼び出すと解除できます。
このメソッド、Oreoでdeprecatedになったんですが、一応いまでも使えます。
APIドキュメントに
This method is expected to be used for testing purposes only.
と書いてある通り、テスト用にのみ使うことが推奨されていますが、releaseビルドでも動作します。
adbコマンド
> adb shell dpm remove-active-admin com.example.app/.AdminReceiver
というように、 remove-active-admin
コマンドで解除できます。
ただ、releaseビルドのアプリはこのコマンドを受け付けません。adbコマンドで解除できるのはdebugビルドのアプリだけです。
参考URL
関連(するかもしれない)記事
おススメ