DevicePolicyManager

アプリからスクリーンロックをしたり、セキュリティ関連の操作が出来るのがDevicePolicyManager。

DevicePolicyManager  |  Android Developers

アプリからロックしてみる。
AndroidManifest.xmlは、

android.permission.BIND_DEVICE_ADMINを持つAdminというreceiverを用意。
@xml/adminも準備しないといけない。
intent-filterは、actionでandroid.app.action.DEVICE_ADMIN_ENABLED。
admin.xmlは、

force-lock。
Admin.javaは、

DeviceAdminReceiverを継承。ただし、中身は空でいい。
activity_main.xmlは、

Button1つ。
MainActivity.javaは、

まず、mDevicePolicyManagerの取得、mComponentNameの初期化をする。
Buttonを押して、管理者権限なら端末をロックする。
そうでない場合は、管理者権限を取得するためのIntentを発行する。
onActivityResultで、許可なら"Admin OK"と出る。

この画面からLockを押すと
この画面からLockを押すと

この画面からLockを押すと、

こんな感じで管理者を有効にするか聞いてくる
こんな感じで管理者を有効にするか聞いてくる

こんな感じで管理者を有効にするか聞いてくる。
キャンセルすると、

Admin NG
Admin NG

Admin NG。

再びLockを押してこれを表示
再びLockを押してこれを表示

再びLockを押してこれを表示。今度は有効にするを選択。

Admin OK
Admin OK

Admin OK。

ロック画面になる
ロック画面になる

ロック画面になる。

Sample/android/DevicePolicyManager/DevicePolicyManager/src/DevicePolicyManager at master · bg1bgst333/Sample · GitHub