默认应用设置

借助 Android Management API,IT 管理员可以远程设置受管设备或个人资料上的默认应用并强制执行相关设置。这样可防止用户切换到安全性较低的应用来执行拨号、短信和浏览等关键功能,从而降低网络钓鱼和数据渗漏等风险,进而提升设备安全性。

管理员设置默认应用政策后,最终用户将无法更改指定配置文件中的任何默认应用设置。

策略配置

您可以通过在政策的 defaultApplicationSettings 字段中添加一个或多个 DefaultApplicationSetting 对象来配置默认应用。每个设置对象都针对特定的应用类型,并且可以应用于不同的范围

设置默认应用

对于每个 DefaultApplicationType,可以在 defaultApplications 字段中提供应用优先级列表。该 API 会将列表中已安装在设备上且符合相应应用类型的第一个应用设置为默认应用。

如果非系统应用要设置为默认应用,则其在设备上的签名密钥证书指纹必须与从 Google Play 商店或 ApplicationPolicy.signingKeyCerts 中的某个条目获得的指纹相匹配。

定义范围

defaultApplicationScopes 字段用于确定政策的应用范围。 可用的范围包括:

SCOPE_FULLY_MANAGEDSCOPE_WORK_PROFILE 设置默认应用时,该应用必须在 applications 政策中具有相应条目。相应应用的 installType 不得为 BLOCKED

如果以 SCOPE_PERSONAL_PROFILE 为目标,则政策仅限于将预安装的系统应用设置为默认应用。

跨资料角色

某些角色(例如 DEFAULT_WALLET)适用于设备上的所有个人资料。对于公司自有设备上具有工作资料的这些角色,管理员可以选择在工作资料或个人资料中设置默认应用,但不能同时在两者中设置。

管理模式和 Android 版本

对该功能的支持因设备的管理模式和 Android 版本而异。

管理模式 Android 14 - 15 Android 16+
全代管式 仅限 DEFAULT_DIALER 支持所有应用类型。
装有工作资料的公司自有设备 不支持 工作资料DEFAULT_BROWSERDEFAULT_CALL_REDIRECTIONDEFAULT_CALL_SCREENINGDEFAULT_DIALERDEFAULT_WALLET
个人资料DEFAULT_BROWSERDEFAULT_DIALERDEFAULT_SMSDEFAULT_WALLET
设置了工作资料的个人设备 不支持 工作资料DEFAULT_BROWSERDEFAULT_CALL_REDIRECTIONDEFAULT_CALL_SCREENINGDEFAULT_DIALER
个人资料:不支持

违规问题报告

如果无法应用政策,设备会报告不合规情况(请参阅 NonComplianceDetail)。不合规的常见原因包括:

  • 设备或配置不受支持:如果设备所用的 Android 版本或管理模式不支持该功能,系统会报告不合规问题,原因代码为 API_LEVELMANAGEMENT_MODE
  • 不支持的范围:如果政策中指定的任何范围都不适用于设备的管理模式(例如,仅包含 SCOPE_PERSONAL_PROFILE 的政策被发送到完全受管理的设备),系统会报告不合规情况,原因代码为 MANAGEMENT_MODE,具体原因为 DEFAULT_APPLICATION_SETTING_UNSUPPORTED_SCOPES
  • 未安装应用:对于完全受管设备和工作资料,如果设备上未安装优先级列表中的任何应用,系统会报告不合规情况,原因代码为 APP_NOT_INSTALLED
  • 值无效:如果至少安装了一个应用,但由于其他原因(例如应用类型不正确)导致默认应用设置无法应用,系统会报告不合规问题,并说明原因 INVALID_VALUE
  • 个人资料失败:对于个人资料,如果因任何原因而无法应用,系统会报告一般性 INVALID_VALUE 不合规问题,但不会披露个人应用的安装状态。

默认应用状态报告

从 Android 16 开始,设备状态报告包含 defaultApplicationInfo。此字段提供有关当前默认应用和政策应用尝试结果的详细信息。如需启用此报告,请在 StatusReportingSettings 中将 defaultApplicationInfoReportingEnabled 标志设置为 true

  • 全托管式设备:报告涵盖所有应用类型。
  • 设置了工作资料的设备:报告仅包含工作资料支持的应用类型。

报告中的每种应用类型都包含以下详细信息:

  • packageName:表示相应类型的当前默认应用。 它可以是政策设置的应用、系统默认应用或用户选择的应用。如果未报告此字段,则不会为此类型设置任何默认应用。
  • defaultApplicationSettingAttempts:列出政策中指定的每个应用的默认应用设置尝试结果。这有助于管理员了解为什么列表中优先级较高的应用可能未被设置为默认应用。

政策示例

以下是一个用于设置默认浏览器和拨号器的政策示例。如果范围包含 SCOPE_FULLY_MANAGEDSCOPE_WORK_PROFILE,则应用会添加到 applications 政策中。将 defaultApplicationInfoReportingEnabled 设置为 true 即可启用报告。

{
  "applications": [
    {
      "packageName": "com.android.chrome",
      "installType": "AVAILABLE"
    },
    {
      "packageName": "com.google.android.dialer",
      "installType": "AVAILABLE"
    },
    {
      "packageName": "com.samsung.android.dialer",
      "installType": "AVAILABLE"
    }
  ],
  "statusReportingSettings": {
    "defaultApplicationInfoReportingEnabled": true
  },
  "defaultApplicationSettings": [
    {
      "defaultApplicationType": "DEFAULT_BROWSER",
      "defaultApplications": [
        {
          "packageName": "com.android.chrome"
        }
      ],
      "defaultApplicationScopes": [
        "SCOPE_FULLY_MANAGED",
        "SCOPE_WORK_PROFILE"
      ]
    },
    {
      "defaultApplicationType": "DEFAULT_DIALER",
      "defaultApplications": [
        {
          "packageName": "com.google.android.dialer"
        },
        {
          "packageName": "com.samsung.android.dialer"
        }
      ],
      "defaultApplicationScopes": [
        "SCOPE_FULLY_MANAGED",
        "SCOPE_WORK_PROFILE",
        "SCOPE_PERSONAL_PROFILE"
      ]
    }
  ]
}