アプリからスクリーンロックをしたり、セキュリティ関連の操作が出来るのが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を押すと、
こんな感じで管理者を有効にするか聞いてくる。
キャンセルすると、
Admin NG。
再びLockを押してこれを表示。今度は有効にするを選択。
Admin OK。
ロック画面になる。