アプリケーション

Android のランタイム権限(カメラ、位置情報、連絡先等)をアプリが要求した際のデフォルト動作に加え、 カメラ・マイクの利用可否、アプリの配布方法(インストールタイプ)、自動入力・アシスタント連携・クレデンシャルプロバイダ・ App Functions といったアプリの動作ポリシー、利用可能なユーザー補助サービス/入力方式の制限、秘密鍵の自動選択ルールを解説します。

フィールドの階層に注意(ポリシー全体 vs アプリ単位)

このページで扱うフィールドの多くは、個々のアプリ(ApplicationPolicy、 applications[] 配下)ではなく、ポリシー全体(Policy)直下に設定するフィールドです。

  • Policy 直下 — defaultPermissionPolicy(全体既定), cameraAccess, microphoneAccess, autofillPolicy, assistContentPolicy, credentialProviderPolicyDefault, appFunctions, permittedAccessibilityServices, permittedInputMethods, choosePrivateKeyRules, shareLocationDisabled
  • ApplicationPolicy 配下(applications[] の各要素) — installType, アプリ単位で上書きする defaultPermissionPolicy, credentialProviderPolicy

設定する階層を誤るとポリシーに反映されないため、各項目の説明にあるフィールドパスを必ず確認してください。

アプリケーションセクション。デフォルト権限ポリシー(ランタイム権限のデフォルト動作・位置情報の共有を無効化)と個別の権限付与パネル
アプリケーションセクション。ランタイム権限のデフォルト動作と個別の権限付与をここで設定します。

デフォルト権限ポリシー

defaultPermissionPolicy

Policy.defaultPermissionPolicy ・ enum(PermissionPolicy)

全アプリに対するランタイム権限要求のデフォルト応答を設定します。同名の ApplicationPolicy.defaultPermissionPolicy(アプリ単位、後述の「アプリ単位の設定」参照)を 個別のアプリに設定すると、そちらがこの全体既定より優先されます。

この全体既定より上位に継承元は存在しないため、未指定(PERMISSION_POLICY_UNSPECIFIED)の場合の実際の動作は PROMPT と同じです。AXROID の設定画面では「未設定」と PROMPT を 別々の選択肢として重複表示せず、「ユーザーに確認」(PROMPT)を既定の選択肢として一本化しています。 なお、アプリ単位の上書き(後述)における未指定は意味が異なり、こちらの全体既定を継承します。

PROMPT

ユーザーに権限の許可/拒否を確認します(Android のデフォルト動作)。

GRANT

全ての権限要求を自動的に許可します。ユーザーへの確認は表示されません。業務アプリがスムーズに動作する必要がある環境で使用します。 Android 12 以降では、READ_SMS・位置情報・カメラ・マイク・活動認識・ボディセンサー系の権限は、フルマネージド端末でのみ自動許可できます (ワークプロファイル端末では自動許可されず、ユーザーへの確認が発生します)。

DENY

全ての権限要求を自動的に拒否します。高セキュリティ環境向けですが、アプリの動作に影響する可能性があります。

カメラ・マイクのアクセス制御

cameraAccess

Policy.cameraAccess ・ enum(CameraAccess)

カメラの使用可否と、Android 12 以降でユーザーがシステムの「カメラアクセス」トグルを操作できるかどうかを制御します。 非推奨の cameraDisabled は、このフィールドが CAMERA_ACCESS_UNSPECIFIED 以外に設定されている場合は無視されます。

CAMERA_ACCESS_UNSPECIFIED

未指定(既定)。cameraDisabled=true の場合は CAMERA_ACCESS_DISABLED 相当、それ以外は CAMERA_ACCESS_USER_CHOICE 相当として扱われます。

CAMERA_ACCESS_USER_CHOICE

既定の動作。ユーザーがシステムのカメラアクセストグルを操作できます。

CAMERA_ACCESS_DISABLED

全カメラを無効化します。フルマネージド端末では端末全体のカメラが、ワークプロファイル端末では業務プロファイル側のカメラのみが無効になります。

CAMERA_ACCESS_ENFORCED

全カメラを常に利用可能にします。フルマネージド端末かつ Android 12 以上では、ユーザーはトグルを操作できません。

microphoneAccess

Policy.microphoneAccess ・ enum(MicrophoneAccess)

マイクの使用可否と、ユーザーがシステムの「マイクアクセス」トグルを操作できるかどうかを制御します。 フルマネージド端末でのみ有効で、ワークプロファイル端末には影響しません。 値の構成は cameraAccess と対称です。 非推奨の unmuteMicrophoneDisabled は、このフィールドが MICROPHONE_ACCESS_UNSPECIFIED 以外に設定されている場合は無視されます。

MICROPHONE_ACCESS_UNSPECIFIED

未指定(既定)。

MICROPHONE_ACCESS_USER_CHOICE

既定の動作。ユーザーがシステムのマイクアクセストグルを操作できます。

MICROPHONE_ACCESS_DISABLED

マイクを無効化します(フルマネージド端末のみ)。

MICROPHONE_ACCESS_ENFORCED

マイクを常に利用可能にします(フルマネージド端末のみ)。ユーザーはトグルを操作できません。

個別の権限付与

permissionGrants を使用すると、特定の Android 権限に対して個別にポリシーを設定できます。 デフォルトポリシーよりも個別設定が優先されます。

"permissionGrants": [
  {
    "permission": "android.permission.CAMERA",
    "policy": "DENY"
  },
  {
    "permission": "android.permission.ACCESS_FINE_LOCATION",
    "policy": "GRANT"
  }
]

よく使用される Android 権限

権限名 説明
android.permission.CAMERA カメラへのアクセス
android.permission.ACCESS_FINE_LOCATION 精密な位置情報
android.permission.READ_CONTACTS 連絡先の読み取り
android.permission.READ_PHONE_STATE 電話の状態の読み取り
android.permission.RECORD_AUDIO マイクへのアクセス
android.permission.READ_EXTERNAL_STORAGE 外部ストレージの読み取り

アプリ単位の設定(ApplicationPolicy)

installType

ApplicationPolicy.installType(applications[] 配下)・ enum(InstallType)

アプリごとの配布・インストール方法を指定します。

  • INSTALL_TYPE_UNSPECIFIED — 未指定。既定は AVAILABLE と同等に扱われます。
  • PREINSTALLED — 自動的にインストールされますが、ユーザーによる削除は可能です。
  • FORCE_INSTALLED — 自動的にインストールされ、ユーザーは削除できません。
  • BLOCKED — インストールできません。既にインストール済みの場合はアンインストールされます。
  • AVAILABLE — Google Play からユーザーが任意にインストールできます(自動インストールはされません)。
  • REQUIRED_FOR_SETUP — 自動的にインストールされ削除もできない点は FORCE_INSTALLED と同様ですが、加えてインストールが完了するまで端末のセットアップ完了をブロックします。
  • KIOSK — 単一アプリの完全ロックダウン用途。ポリシー内で 1 アプリのみ設定可能です。 Google 公式に非推奨とされており、代わりに REQUIRED_FOR_SETUP または CUSTOM(KIOSK ロールの併用)を使用することが推奨されています。
  • CUSTOM — Google Play を経由せず、AMAPI SDK のコマンド経由でのみインストール・更新できるアプリ用です(Play ストア外のアプリを配布する場合など)。signingKeyCerts の指定が必須です。

defaultPermissionPolicy(アプリ単位の上書き)

ApplicationPolicy.defaultPermissionPolicy(applications[] 配下)・ enum(PermissionPolicy)

特定のアプリだけ、全体既定(Policy.defaultPermissionPolicy、前述)と異なる権限応答にしたい場合に指定します。 値は PROMPT / GRANT / DENY の 3 種類で、 GRANT における Android 12 以降のセンシティブ権限の制約(フルマネージド端末限定)は全体既定の場合と同様です。

未指定(PERMISSION_POLICY_UNSPECIFIED)の意味は全体既定とは異なります。 権限ポリシーは「アプリ単位の指定 → ポリシー全体の既定 → PROMPT」の順に解決されるため、 アプリ単位を未指定にした場合は PROMPT になるのではなく、 ポリシー全体の設定(GRANT / DENY 等)をそのまま継承します。 全体既定を GRANT にしている状態でアプリ単位を未設定にすると、そのアプリにも GRANT が適用されます。 このため設定画面では、全体既定とは違って「未設定(ポリシー全体の設定を継承)」の選択肢を PROMPT と統合せず、別の選択肢として残しています。

credentialProviderPolicy(アプリ単位の上書き)

ApplicationPolicy.credentialProviderPolicy(applications[] 配下)・ enum

後述の Policy.credentialProviderPolicyDefault(全体既定)を、特定のアプリだけ上書きしたい場合に指定します。

  • CREDENTIAL_PROVIDER_POLICY_UNSPECIFIED — 未指定。全体既定に従います。
  • CREDENTIAL_PROVIDER_ALLOWED — このアプリを Credential Provider として動作させることを許可します。
  • CREDENTIAL_PROVIDER_DISALLOWED — このアプリを Credential Provider として動作させることを禁止します。

アプリの動作ポリシー(Policy 直下)

autofillPolicy

Policy.autofillPolicy ・ enum(AutofillPolicy)

Android 8 で導入されたシステムの Autofill(自動入力)サービスの利用を管理します。 後述の credentialProviderPolicyDefault とは補完関係にあり、 認証情報の管理を包括的に制限したい場合は両方を併用する必要があります(片方だけでは不十分です)。

  • AUTOFILL_POLICY_UNSPECIFIED — 未指定。既定は AUTOFILL_USER_CHOICE です。
  • AUTOFILL_USER_CHOICE — ユーザーが任意の自動入力サービスを選択できます。
  • AUTOFILL_DISABLED — 自動入力サービスを無効化します(Android 8 以上でのみサポート)。

assistContentPolicy

Policy.assistContentPolicy ・ enum(AssistContentPolicy) ・ Android 15 以上でサポート

AssistContent(画面のスクリーンショットやパッケージ名等)を、アシスタントアプリ等の特権アプリへ送信することを許可するかを制御します。

  • ASSIST_CONTENT_POLICY_UNSPECIFIED — 未指定。既定は ASSIST_CONTENT_ALLOWED です。
  • ASSIST_CONTENT_ALLOWED — AssistContent の送信を許可します。
  • ASSIST_CONTENT_DISALLOWED — AssistContent の送信を禁止します。Android 15 未満の端末では非準拠(適用されない)となります。

credentialProviderPolicyDefault

Policy.credentialProviderPolicyDefault ・ enum(CredentialProviderPolicyDefault) ・ Android 14 以上でサポート

パスキー等の認証情報を提供する「Credential Provider」としてアプリが動作できるかどうかの全体既定値を制御します。 特定のアプリだけ挙動を変えたい場合は、前述の ApplicationPolicy.credentialProviderPolicy で上書きします。

  • CREDENTIAL_PROVIDER_POLICY_DEFAULT_UNSPECIFIED — 未指定。既定は CREDENTIAL_PROVIDER_DEFAULT_DISALLOWED です。
  • CREDENTIAL_PROVIDER_DEFAULT_DISALLOWED — 個別に許可されていないアプリは Credential Provider として動作できません。
  • CREDENTIAL_PROVIDER_DEFAULT_DISALLOWED_EXCEPT_SYSTEM — 個別に許可されていないアプリは動作できませんが、OEM 既定のプロバイダのみ例外的に許可されます。
  • CREDENTIAL_PROVIDER_DEFAULT_ALLOWED — 個別に禁止されていない限り、すべてのアプリを Credential Provider として動作させることを許可します。

appFunctions

Policy.appFunctions ・ enum(AppFunctions)

フルマネージド端末全体、またはワークプロファイル端末の業務プロファイル側で、アプリが「App Function」 (Gemini 等の AI アシスタントから呼び出し可能な操作)を公開できるかどうかを制御します。

  • APP_FUNCTIONS_UNSPECIFIED — 未指定。既定は APP_FUNCTIONS_ALLOWED です。
  • APP_FUNCTIONS_ALLOWED — App Function の公開を許可します。
  • APP_FUNCTIONS_DISALLOWED — App Function の公開を禁止します。この値を設定している間は、関連する crossProfileAppFunctions を ALLOWED にすることはできません。

許可するサービス・入力方式(Policy 直下)

permittedAccessibilityServices

Policy.permittedAccessibilityServices ・ object(PackageNameList) — { "packageNames": string[] }

利用を許可するユーザー補助(アクセシビリティ)サービスをパッケージ名で制限します。 フィールド自体を未設定にすると、任意のユーザー補助サービスを利用できます。 設定した場合は、リストに含まれるパッケージ + システム標準のサービスのみ利用可能になります (リストを空にした場合はシステム標準のサービスのみ)。 ワークプロファイル端末に適用した場合、個人プロファイル・業務プロファイルの両方に影響する点に注意してください。

permittedInputMethods

Policy.permittedInputMethods ・ object(PackageNameList) — { "packageNames": string[] }

利用を許可する入力方式(IME)をパッケージ名で制限します。 設定した場合はリストに含まれるパッケージの IME のみ許可され、リストを空にした場合はシステム標準の IME のみ許可されます。

秘密鍵アクセスルール(Policy 直下)

choosePrivateKeyRules

Policy.choosePrivateKeyRules ・ array of ChoosePrivateKeyRule

アプリが KeyChain.choosePrivateKeyAlias を呼び出した際に、 どの証明書/秘密鍵を自動的に選択させるかを定義するルールの配列です。 複数のルールが同時に一致する場合は、配列内で最後に一致したルールが優先されます。

  • urlPattern(string) — 正規表現構文の URL パターン。未設定または空文字の場合はすべての URL に一致します。
  • packageNames(string[]) — このルールを適用するアプリのパッケージ名(署名証明書のフィンガープリントで検証されます)。未指定の場合はすべてのアプリに適用されます。
  • privateKeyAlias(string) — 一致した場合に使用させる秘密鍵のエイリアス。

CERT_SELECTION 委任スコープとの制約

いずれかのアプリに CERT_SELECTION 委任スコープが付与されている場合、 choosePrivateKeyRules は空でなければなりません(委任先アプリが証明書選択を行うため)。

位置情報の共有

shareLocationDisabled を有効にすると、 デバイスの位置情報共有設定が無効化されます。これは権限ポリシーとは独立した設定で、 ユーザーが位置情報を他のアプリやサービスと共有する機能自体を制御します。

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

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

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

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

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