【Android】AndroidデバイスでKiosk端末を作る

Android/Kotlinアプリ開発

初めに

こんにちは!DreamHanksのキムです。

今回はAndroidデバイスを使ってキオスク端末を作る方法について説明いたします。

Kiosk端末とは

キオスクとは、駅・空港・ホテル・商業施設などの公衆の場に設置されているインターネット接続のための情報端末を意味します。

インターネット・キオスク(ウィキペディア)

Kioskアプリケーションの作り方

Activity.startLockTaskを使って、他の画面への移動を制限することができます。

簡単ですね!

…しかし、この方法だとユーザーが勝手にロックを解除して、他の画面に移動することができてしまいます。

Device Ownerとは

Androidにはデバイスを管理するための特別な権限を持ったDevice Ownerという管理者権限があります。

この権限は、もともと企業でデバイスを管理するための機能です。 例えば、ユーザーが勝手にGoogle Playからアプリをダウンロードしたり、設定を変えたりするなどの行為を防ぐことができます。

ただし、この権限を使うには、デバイスの初期化が必要です。

Device Ownerアプリの作り方

まずは、今のアプリをDevice Ownerにする必要があります。

Device Ownerアプリには、「DeviceAdminReceiver」と、Android 12以上の場合は以下2つのIntentを処理するActivityが必要です。

1. android.app.action.GET_PROVISIONING_MODE
2. android.app.action.ADMIN_POLICY_COMPLIANCE

もともとはgetComponentNameも必要ありませんが、 後で使うために追加しました。

AndroidManifest.xml:

res/xml/device_admin_receiver.xml:

テストをするにはこれでも十分です。

ただし、このままだとプロビジョニングできなくなってしまいますので、以下の2つのActivityを追加します。

AndroidManifest.xml:

AdminPolicyComplianceActivityはプロビジョニング中に色々設定できるActivityですが、簡単にするために省略しました。

GetProvisioningModeActivityは、このアプリケーションをどのモードでプロビジョニングするかを決定するためのActivityで、ユーザーがProfile OwnerとDevice Ownerのどちらかを選択できるようにするなどの動作ができます。

この記事ではDevice Owner権限が必要ですので、PROVISIONING_MODE_MANAGED_PROFILEを自動的に選択するようにしました。

Kiosk Activityの作成

プロビジョニング

プロビジョニング用QRコードを作ります。

PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUMは以下のコマンドを実行して取得できます。

デバイスをファクトリーリセットして、初期画面(言語を選べる画面)で画面の空き領域をすばやく、6回ほどタッチすることでQRコードスキャン画面に進入できます。 このQRコードをスキャンすることでインストールできます。

終わりに

今回の記事は以上となります。

ご覧いただきありがとうございます。

参考したサイト

コメント