キオスクモード

キオスクモードは、デバイスを 1 つまたは複数のアプリに限定してロックダウンする機能です。 デジタルサイネージ・POS 端末・受付端末など、専用用途のデバイスに最適です。

まずは操作手順から知りたい場合

設定項目リファレンスではなく、目的別の操作手順をお探しの場合は 1 つのアプリだけ使える端末にしたい をご覧ください。本ページは各 JSON フィールドの詳細仕様を扱います。

キオスクモードには 2 つの独立した方式があります

AMAPI には、単一アプリに完結してロックダウンする方式(applications[].installType: KIOSK)と、 複数アプリから選択できるカスタムランチャー方式(kioskCustomLauncherEnabled: true)という 2 つの独立した方式が存在し、互いに併用できません。 「kioskCustomLauncherEnabled が必須」という説明は後者の方式にのみ当てはまります。 詳細は下記「キオスクモードの 2 方式」をご覧ください。

さらに、installType: KIOSK は Google 公式リファレンスで 非推奨(DEPRECATED)とされており、代替として REQUIRED_FOR_SETUP または CUSTOM + キオスクロールの利用が案内されています。 同様に statusBarDisabled も公式に非推奨で、代替として 「installType KIOSK または kioskCustomLauncherEnabled を使うこと」と案内されていますが、 installType KIOSK 自体が非推奨であるため、実質的に推奨される方式は kioskCustomLauncherEnabled 方式になります。

キオスクモードの 2 方式

方式 A: kioskCustomLauncherEnabled(カスタムランチャー方式・推奨)

kioskCustomLauncherEnabled: boolean

true に設定すると、Android のカスタムランチャーが有効化され、 applications でインストール対象として指定した 1 つ以上のアプリが ホーム画面(ランチャー)に表示されます。この方式では applications[].installType に KIOSK を指定したアプリを含めることはできません(併用不可)。 このフラグが false または未設定で、かつ installType: KIOSK のアプリも存在しない場合、 この方式のキオスクモードは動作しません。

方式 B: installType KIOSK(単一アプリ完結方式) 廃止予定

applications[].installType: "KIOSK"

ポリシー内の 1 つのアプリの installType を KIOSK に設定すると、そのアプリ単体でロックダウンが完結し、 kioskCustomLauncherEnabled を別途 true にする必要はありません (むしろ併用不可です)。1 ポリシーにつき 1 アプリまでで、ステータスバーも自動的に無効化されます。 ただしこの方式自体が公式に非推奨のため、新規設定では方式 A、または REQUIRED_FOR_SETUP / CUSTOM + キオスクロールの利用を検討してください。

statusBarDisabled 廃止予定

boolean

通知バーの展開やクイック設定パネルへのアクセスを禁止します。ユーザーが通知パネルから設定にアクセスしてキオスクモードを回避することを防止します。 なお、方式 B(installType: KIOSK)を使用した場合は、 この項目を有効にしなくても自動的にステータスバーが無効化されます。 より細かい制御が必要な場合は、下記「キオスク詳細設定(kioskCustomization)」の statusBar の利用を検討してください。

applications

array of ApplicationPolicy

デバイスにインストールするアプリのリストです。各アプリには以下のフィールドを設定します:

  • packageName — アプリのパッケージ名 (例: com.android.chrome)
  • installType — FORCE_INSTALLED (強制インストール), PREINSTALLED, BLOCKED, KIOSK (方式 B。単一アプリの完全ロックダウン。1ポリシーにつき1アプリまで。kioskCustomLauncherEnabled とは併用不可。非推奨) 等
  • defaultPermissionPolicy — アプリ個別の権限ポリシー (GRANT, DENY, PROMPT)

persistentPreferredActivities

array of PersistentPreferredActivity

ホームボタンやインテントのデフォルトアクティビティを固定します。 キオスクモードでは、ホーム画面を特定のアプリに固定するために使用します。

JSON

{
  "receiverActivity": "com.android.chrome",
  "actions": ["android.intent.action.MAIN"],
  "categories": [
    "android.intent.category.HOME",
    "android.intent.category.DEFAULT"
  ]
}

setupActions

array of SetupAction(AMAPI仕様には存在)

デバイスのセットアップ中に実行されるアクションを AMAPI 仕様上は定義できますが、 AXROID の管理コンソールには現在この項目の設定 UI が実装されていません。 既存ポリシーに setupActions が含まれる場合、保存時に自動的に削除されます。

既定アプリの設定

defaultApplicationSettings(Policy 直下、array of DefaultApplicationSetting)

ブラウザ・ホームアプリ・電話帳アプリなど、Android の「既定のアプリ」に該当する種別ごとに、候補となるパッケージ名を指定します。 persistentPreferredActivities と同一のインテント種別へ重複して設定すると、 動作が不安定になるため、いずれか一方のみ設定してください。

defaultApplicationType

enum DefaultApplicationType(DEFAULT_APPLICATION_TYPE_UNSPECIFIED は使用不可)

DEFAULT_ASSISTANT

アシスタントアプリ。SCOPE_FULLY_MANAGED のみ。Android 16 以上の fully managed 端末が対象。

DEFAULT_BROWSER

既定のブラウザ。Android 16 以上が対象。

DEFAULT_CALL_REDIRECTION

通話転送アプリ。SCOPE_PERSONAL_PROFILE は指定不可。Android 16 以上が対象。

DEFAULT_CALL_SCREENING

通話スクリーニングアプリ。SCOPE_PERSONAL_PROFILE は指定不可。Android 16 以上が対象。

DEFAULT_DIALER

電話(ダイヤラー)アプリ。Android 14/15 では fully managed 端末のみ、Android 16 以上では全モードが対象。

DEFAULT_HOME

ホーム(ランチャー)アプリ。SCOPE_FULLY_MANAGED のみ。Android 16 以上の fully managed 端末が対象。

DEFAULT_SMS

SMS アプリ。SCOPE_WORK_PROFILE は指定不可。会社所有(company-owned)端末で Android 16 以上が対象。

DEFAULT_WALLET

ウォレットアプリ。プロファイルを横断して適用可能。会社所有(company-owned)端末で Android 16 以上が対象。

defaultApplicationScopes

array of enum DefaultApplicationScope(SCOPE_UNSPECIFIED は使用不可)

SCOPE_FULLY_MANAGED

フルマネージドデバイス全体に適用します。

SCOPE_WORK_PROFILE

ワークプロファイルに適用します。対応する Type は BROWSER / CALL_REDIRECTION / CALL_SCREENING / DIALER / WALLET のみです。

SCOPE_PERSONAL_PROFILE

個人用プロファイルに適用します。会社所有(company-owned)端末でのみ指定可能。対応する Type は BROWSER / DIALER / SMS / WALLET のみで、プリインストール済みのシステムアプリのみ指定できます。

defaultApplications

array of object (packageName: string)

既定アプリの候補パッケージ名のリストです。先頭から順に確認され、端末にインストール済みで条件に適合する最初のアプリが採用されます。

キオスク詳細設定

kioskCustomization

公式ドキュメントの原文: "To enable kiosk mode, set kioskCustomLauncherEnabled to true or specify an app in the policy with installType KIOSK." (キオスクモードを有効にするには、kioskCustomLauncherEnabled を true に設定するか、ポリシー内のいずれかのアプリに installType KIOSK を指定してください。) kioskCustomization 配下の各設定は、上記いずれかの方式でキオスクモードが有効な場合に、その挙動を細かく調整するためのものです。

powerButtonActions

enum PowerButtonActions

POWER_BUTTON_ACTIONS_UNSPECIFIED

未指定(既定は POWER_BUTTON_AVAILABLE)。

POWER_BUTTON_AVAILABLE

電源ボタン長押しで電源メニューを表示します。

POWER_BUTTON_BLOCKED

電源メニューを表示しません。ユーザーがデバイスの電源を切れなくなる可能性があります。

deviceSettings

enum DeviceSettings

DEVICE_SETTINGS_UNSPECIFIED

未指定(既定は SETTINGS_ACCESS_ALLOWED)。

SETTINGS_ACCESS_ALLOWED

設定アプリへのアクセスを許可します。

SETTINGS_ACCESS_BLOCKED

設定アプリへのアクセスを禁止します。

systemErrorWarnings

enum SystemErrorWarnings

SYSTEM_ERROR_WARNINGS_UNSPECIFIED

未指定(既定は ERROR_AND_WARNINGS_MUTED)。

ERROR_AND_WARNINGS_ENABLED

クラッシュや ANR(応答なし)等のシステムダイアログを表示します。

ERROR_AND_WARNINGS_MUTED

システムダイアログをブロックします(force-stop 相当の挙動になります)。

systemNavigation

enum SystemNavigation

SYSTEM_NAVIGATION_UNSPECIFIED

未指定(既定は NAVIGATION_DISABLED)。

NAVIGATION_ENABLED

ホームボタン・オーバービューボタンの両方を表示します。

NAVIGATION_DISABLED

ホームボタン・オーバービューボタンの両方を非表示にします。

HOME_BUTTON_ONLY

ホームボタンのみ表示します。

戻るボタンはこの設定の対象外です

Google公式仕様上、systemNavigation が制御するのは「ホームボタン・オーバービューボタン」のみです。 NAVIGATION_DISABLED(両方非表示)を選択しても、戻るボタンは仕様上常に表示されたままになります(実機で確認済み)。 戻るボタンを含むナビゲーションバー全体を非表示にするフィールドは、AMAPI仕様には存在しません。 ナビゲーションバー自体を完全に非表示にしたい場合は、Policy側では実現できないため、キオスク対象アプリ側でAndroidのイマーシブモード(WindowInsetsController 等)を実装する必要があります。

statusBar(kioskCustomization 配下、新方式)

enum StatusBar

STATUS_BAR_UNSPECIFIED

未指定(既定は NOTIFICATIONS_AND_SYSTEM_INFO_DISABLED)。

NOTIFICATIONS_AND_SYSTEM_INFO_ENABLED

通知とシステム情報を両方表示します。有効化するには systemNavigation でホームボタンを表示している必要があります。

NOTIFICATIONS_AND_SYSTEM_INFO_DISABLED

通知とシステム情報を両方非表示にします。

SYSTEM_INFO_ONLY

システム情報のみ表示します(通知は非表示)。

設定例: Chrome キオスク(方式 A: カスタムランチャー)

Chrome ブラウザのみを表示するキオスク端末の最小構成例(方式 A): statusBarDisabled は非推奨のため、新規構成では代わりに kioskCustomization.statusBar の利用を検討してください。

JSON

{
  "kioskCustomLauncherEnabled": true,
  "applications": [
    {
      "packageName": "com.android.chrome",
      "installType": "FORCE_INSTALLED",
      "defaultPermissionPolicy": "GRANT"
    }
  ],
  "persistentPreferredActivities": [
    {
      "receiverActivity": "com.android.chrome",
      "actions": ["android.intent.action.MAIN"],
      "categories": [
        "android.intent.category.HOME",
        "android.intent.category.DEFAULT"
      ]
    }
  ],
  "statusBarDisabled": true,
  "cameraDisabled": true,
  "playStoreMode": "WHITELIST"
}

ベストプラクティス

1.

2 方式のいずれか一方を明確に選んで設定する。 複数アプリを選択させたい場合は方式 A(kioskCustomLauncherEnabled: true)、 単一アプリに完結させたい場合のみ方式 B(installType: KIOSK、非推奨)を検討します。 どちらのフラグも設定しない場合、キオスクモードは有効化されません。

2.

ステータスバーを非表示にする。 方式 B や旧来の statusBarDisabled(非推奨)でも無効化できますが、 新規構成では kioskCustomization.statusBar の利用を推奨します。 ユーザーが通知パネルから設定にアクセスしてキオスクモードを回避することを防止します。

3.

Play Store をホワイトリストモードにする。 許可したアプリ以外が Play Store に表示されなくなります。

4.

工場出荷時リセットを無効化する。 デバイスが不正にリセットされて管理から外れることを防止します。

5.

ネットワーク緊急回避を有効にする。 Wi-Fi 設定のロックダウン時でも、起動時にネットワークに接続できなかった場合の回復手段を確保します。

関連ドキュメント

サーバーに再接続しています...

再接続に失敗しました...
秒後に再試行します。

サーバーへの再接続に失敗しました。
ページを更新するか、手動で再試行してください。

サーバーによってセッションが一時停止されました。

セッションの再開に失敗しました。
ページを更新するか、手動で再試行してください。