temporaryなめも帳

だらだらと備忘録とか。誰かの為になることをねがって。

Androidでキオスクモードしたい

基本的にできない。 のだけれど、Androidの動作を見てるとHOMEとかが消えたりすることがある。

どうやってるのかと調べてみた。

どうやら、StatusBarManager経由でStatusBar上のアイテムのON/OFFを簡単に切り替えることができる様子。 (ただし、"android.permission.STATUS_BAR"が必要になるため、Platform署名が必要となる。)

適当に書いたサンプルは以下の通り。

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mStatusBarManager = (StatusBarManager)getSystemService(Context.STATUS_BAR_SERVICE);
        mStatusBarManager.disable(StatusBarManager.DISABLE_HOME);
    }

    @Override
    protected void onPause() {
        super.onPause();
        mStatusBarManager.disable(StatusBarManager.DISABLE_NONE);
    }

上記を実行すれば、アプリケーション起動と共にHOMEボタンが消える。 その他にも、NOTIFICATION_ICONS/SYSTEM_INFO/SEARCH/BACK/RECENT/...etc と指定できるので、 全指定すればその画面にユーザーをロックすることは可能かもしれない。

元に戻したい時は、onPause()の処理を参考にどうぞ。