Android 定制意向

使用 Android 自定义意图功能预配置设置和创建自定义工作流,以便在 Kiosk 模式下在 Android 设备上仅打开 "设置 "应用程序的特定部分。

Android 设备上的 Kiosk 模式使用率正在上升。 这些处于多媒体终端模式的设备处于锁定状态,用户无法访问诸如生物识别,密码, NFC 等日常工作所需的设置。 Android 定制意向功能提供了控制向用户公开的设置的灵活性。 例如,从设备打开 "生物识别" 注册屏幕,而不将 "设置" 应用程序添加到 COSU Kiosk 方式策略中的允许列表。

配置 Android 定制意向

  1. IBM® MaaS360® 门户 主页页面,单击 安全 > 策略
  2. 选择 Android MDM Polciy 策略。
  3. 转至 配置设置 > Android Enterprise 设置 > COSU (Kiosk 方式) ,然后单击 启用 Kiosk 方式
  4. 展开 Kiosk 设备设置 部分并配置以下内容:
    策略设置 描述 受支持的设备
    添加定制启动项

    如果开启此设置,那么可以使用 Android 定制意向功能来添加定制启动。 您可以在 Android 设备上以多媒体终端方式使用 JSON 代码来添加设置或应用程序。 有关 JSON 代码格式的更多信息,请参阅 JSON 代码格式

    要点:
    • 启用此设置可帮助用户转到设备上与此设置相关的其他部分。
    • 此功能适用于 Android 应用程序版本为 8.60 或更高版本的设备。

    您可以添加多个定制启动项,每个项都包含以下设置:

    • 设备上的项位置: 根据您选择的项位置,定制启动项显示在设备上的菜单列表中的 设备设置其他快捷方式 部分下。
    • 项名称: 您可以在多个语言环境中添加定制启动项名称。 项目名称将显示在为 Kiosk 应用程序设置了相关语言环境的设备上。

      您可以输入键/值对,其中键表示项名称显示的语言环境,值表示项名称。

    • 项描述: 您可以在多个语言环境中添加定制启动项的相关描述。

      您可以输入键/值对,其中键表示项描述显示的语言环境,值表示项描述。

    • 定制意向: 要定义 Android 定制意向,必须提供用于指定必需策略值的 JSON 代码。 有关更多信息,请参阅 定义 Android 定制意向的示例
    Android 8.60 + DO

JSON 代码格式

下表提供了顶级字段和额外字段的样本 JSON 代码格式:

顶级字段
字段名称 Type 示例 描述

操作

字符串

"action": "android.intent.action.VIEW"
"action": "android.intent.action.EDIT"

要执行的常规操作。 例如, ACTION_VIEWACTION_EDITACTION_MAIN等。

数据

字符串

"data": "https://www.company.com#data"

要操作的数据。 例如,联系人数据库中的人员记录,表示为 Uri

packageName

字符串

"packageName": "com.mycompany.myapp"

将操作限制为仅打开特定包。

类别

字符串

数组

"categories": [
    "android.intent.category.LAUNCHER",
    "android.intent.category.BROWSABLE"
]
有关要执行的操作的其他信息。 例如,
  • CATEGORY_LAUNCHER 指示必须作为顶级应用程序出现在设备上的 Kiosk Launcher 应用程序中的活动。
  • CATEGORY_ALTERNATIVE 指示必须包含在用户可以对数据执行的替代操作列表中的活动。

类型

字符串

"type": "text/xml"

指定意向数据的显式 MIME 类型。 类型是从数据本身推断出来的。 通过设置此属性,可禁用该评估并强制使用显式类型。

组件

对象

"component": {
    "packageName": "com.mycompany.myapp",
    "className": "com.mycompany.myapp.ui.MyActivity"
}

指定要用于意向的组件类的显式名称。 根据意向中的其他信息 (例如,操作,数据或类型以及类别) 确定组件,并将其与适当的组件相匹配。 如果设置了此属性,那么将不执行任何求值,并且将直接使用此指定组件。 通过指定此属性,所有其他字段都成为可选字段。

  • packageName: 指示组件的软件包名称。 类型:字符串
  • className: 指示组件的类名。 类型:字符串

举报

整数数组

"flags": [2, 4, 8, 32]

可能修改行为的其他标志。 有关标志的列表,请参阅 https://developer.android.com/reference/android/content/Intent

对象数组

"extras": [
 {
   "type": "string",
   "name": "com.mycompany.myapp.SOME_STRING_EXTRA",
    "value": "Some Value Here"
 },
 {
   "type": "integerArray",
   "name": "com.mycompany.myapp.SOME_INT_ARRAY_EXTRA",
   "value": [2, 3, 4]
 },
 {
   "type": "bundle",
   "name": "com.mycompany.myapp.SOME_BUNDLE_EXTRA",
   "value": [
     {
        "type": "string", 
        "name": "SomeBundleString", 
        "value": "Some Value Here"
     },
     {
        "type": "byteArray", 
        "name": "SomeBundleByteArray", 
        "value": [5, 6, 7]
     }
   ]
 }
]

添加可在意向中传递的其他信息。 有关额外字段的更多信息,请参阅 额外字段

额外字段
字段名称 Type 示例 描述

类型

字符串

"type": "string"
"type": "integerArray"
"type": "bundle"

额外信息的类型为:

  • 基本类型

    支持以下数据类型:

    • 布尔值: 额外信息的值必须是 true 或 false 的字符串。
    • char: 额外信息的值必须是一个只有一个字符的字符串。
    • string: 额外信息的值必须是字符串,并且可以是任意长度。
    • byte: 额外信息的值必须是介于 -128 和 127 之间的整数。
    • 整数: 额外信息的值必须是 -2147483648 到 2147483647 之间的整数。
    • short: 额外信息的值必须是介于 -32768 和 32767 之间的整数。
    • long: 额外信息的值必须是 -9223372036854775808 到 9223372036854775807 之间的整数。
    • float: 额外信息的值必须是十进制数字。
    • 双精度: 额外信息的值必须是十进制数。 此类型的精度高于浮点数。
  • 数组类型

    此类型与基本类型具有相同的定义,但使用方括号中的数组语法进行添加。 支持的类型包括:

    • booleanArray
    • stringArray
    • charArray
    • byteArray
    • integerArray
    • shortArray
    • longArray
    • floatArray
    • doubleArray
  • ArrayList 类型

    某些应用程序还支持接收 ArrayList 类型的数据。 此类型具有与数组类型相同的定义和语法。 支持以下类型:

    • integerArrayList
    • stringArrayList
  • 捆绑软件类型

    要创建嵌套的额外信息,请使用捆绑软件类型。 该值必须是额外信息的数组。

    例如:

    {
       "type": "bundle",
       "name": "com.mycompany.myapp.SOME_BUNDLE_EXTRA",
       "value": [
         {
            "type": "string", 
            "name": "SomeBundleString", 
            "value": "Some Value Here"
         },
         {
            "type": "byteArray", 
            "name": "SomeBundleByteArray", 
            "value": [5, 6, 7]
         }
       ]
     }

名称

字符串

"name": "com.mycompany.myapp.SOME_STRING_EXTRA"
"name": "com.mycompany.myapp.SOME_INT_ARRAY_EXTRA"

额外信息的名称。

取决于类型

"value": "Some Value Here"
"value": [5, 6, 7]
"value": 3.534
"value": null

额外信息的值。 可以根据类型添加值。

注: 在所有情况下,可以将该值指定为空值。 在这种情况下,会将空值传递到目标应用程序。
定义 JSON 代码的示例
{
  "action": "android.intent.action.VIEW",
  "data": "https://www.company.com#data",
  "packageName": "com.mycompany.myapp",
  "categories": [
    "android.intent.category.LAUNCHER",
    "android.intent.category.BROWSABLE"
  ],
  "type": "text/xml",
  "component": {
    "packageName": "com.mycompany.myapp",
    "className": "com.mycompany.myapp.ui.MyActivity"
  },
  "flags": [2, 4, 8, 32],
  "extras": [
    {
      "type": "string",
      "name": "com.mycompany.myapp.SOME_STRING_EXTRA",
      "value": "Some Value Here"
    },
    {
      "type": "integerArray",
      "name": "com.mycompany.myapp.SOME_INT_ARRAY_EXTRA",
      "value": [2, 3, 4]
    },
    {
      "type": "bundle",
      "name": "com.mycompany.myapp.SOME_BUNDLE_EXTRA",
      "value": [
        {
           "type": "string", 
           "name": "SomeBundleString", 
           "value": "Some Value Here"
        },
        {
           "type": "byteArray", 
           "name": "SomeBundleByteArray", 
           "value": [5, 6, 7]
        }
      ]
    }
  ]
}

定义 Android 定制意向的示例

下表提供了可以配置为针对各种常见场景创建 Android 定制意向的策略值的示例。

有关 Google Android 提供的意向操作设置的更多信息,请参阅 https://developer.android.com/reference/android/provider/Settings

公共方案 设备上的项位置 项名称 项描述 定制意向 (JSON)

打开设备上的 "声音设置" 屏幕。 有关更多信息,请参阅 公共方案 1

设置

声音设置

单击此处以查看设备的声音设置。

{
"action": "android.settings.SOUND_SETTINGS"
}

打开设备上的任何设置屏幕。 例如, "数据使用情况设置" 屏幕。

设置

数据使用情况设置

单击此处以查看设备的 "数据使用情况" 设置。

{
"action": "android.settings.DATA_USAGE_SETTINGS"
}

在设备上打开应用程序。 例如, Google Chrome。

它会打开软件包名称中指定的应用程序,就像点击设备主屏幕上的应用程序图标一样。

其他快捷方式

打开 Google Chrome

单击此处以打开 Google Chrome 应用程序。

{
  "action": "android.intent.action.MAIN",
  "packageName": "com.android.chrome",
  "categories": [
     "android.intent.category.LAUNCHER"
   ]
}

在设备屏幕上查看 Web 站点。 例如,维基百科。

它打开网络浏览器并启动指定URL。 添加类别以确保只考虑打开 Web 浏览器。

其他快捷方式

打开维基百科

单击此处以在默认浏览器中打开维基百科网站。

{
  "action": "android.intent.action.VIEW",
  "data": "https://www.wikipedia.org",
  "categories": [
     "android.intent.category.BROWSABLE"
  ]
}

使用特定浏览器在设备屏幕上查看 Web 站点。 例如,在 Mozilla Firefox上查看 Google 。

打开 Firefox ,查看指定URL。

其他快捷方式

在 Firefox 中打开 Web 站点

单击此处以在 Firefox 浏览器中打开指定的 Web 站点。

{
  "action": "android.intent.action.VIEW",
  "data": "https://www.google.com",
  "packageName": "org.mozilla.firefox"
}

在设备屏幕上拨号。 例如,打开设备屏幕上输入了数字 911 的手机拨号器,然后用户按 "拨号" 按钮。

其他快捷方式

紧急联系人

单击此处以呼叫 "紧急" 号码。

{
  "action": "android.intent.action.DIAL",
  "data": "tel:911"
}

使用 MaaS360 Mail 发送电子邮件。 例如,打开 MaaS360 邮件组成器,主题和邮件正文已经完成。

其他快捷方式

使用 IBM MaaS360 Mail 撰写邮件

单击此处使用 IBM MaaS360 Mail 撰写邮件。

{
  "action": "android.intent.action.SENDTO",
  "packageName": "com.fiberlink.maas360.android.pim",
  "data": "mailto:abc@company.com",
  "extras": [
     {
        "type": "string",
        "name": "android.intent.extra.SUBJECT",
        "value": "Email Subject Goes Here"
     },
     {
        "type": "string",
        "name": "android.intent.extra.TEXT",
        "value": "Email Body Goes Here"
     }
  ]
}

使用 Gmail 发送电子邮件。 例如,打开 Gmail 组合器,其中主题和邮件正文已完成。

其他快捷方式

使用 Gmail 编写邮件

单击此处以在 Gmail 应用程序上编写邮件。

{
  "action": "android.intent.action.SENDTO",
  "packageName": "com.google.android.gm",
  "data": "mailto:abc@company.com?subject=The%20subject%20of%20the%20mail&body=The%20body%20of%20the%20email"
}

在设备屏幕上显示联系人列表。 例如,显示设备联系人列表。 通常打开设备 "联系人" 应用程序。

其他快捷方式

打开“联系人”

单击此处以打开 "联系人" 应用程序。

{
  "action": "android.intent.action.VIEW",
  "data": "content://contacts/people/"
}
公共方案 1:

在 MaaS360 Portal 中创建声音设置的定制意向

在 IBM MaaS360 Portal 上,配置以下策略值,以便在设备屏幕上打开 "声音设置 "屏幕。

策略设置 描述
添加定制启动项
  • 设备上的项位置: 设置
  • 项名称: 声音设置
  • 项描述: 单击此处以查看设备的声音设置
  • 定制意向:
    {
    "action": "android.settings.SOUND_SETTINGS"
    }
打开设备上的 "声音设置" 屏幕。

以 Kiosk 方式打开 Android 设备上的声音设置

  1. 单击 Android 设备上的 设置 图标。
  2. 单击 菜单 列表上的 设备设置
    Kiosk 方式下 android 设备中的设置菜单

    根据配置的定制意向, 声音设置 定制启动项显示在菜单列表的 设备设置 部分下。

    多媒体终端模式下 android 设备中的声音设置
  3. 单击 声音设置

    您将被重定向到 Android 设备的 "声音设置 "部分。