“SmartDocs”栏可以自定义此页面,仅显示在特定 Zebra 设备上存在的功能。
在 Android“设置”面板或通过 ADB、EMDK 或 MX CSP 查询设备,可以找到设备的 OSX、MX 和 Android 版本信息。更多信息。
Intent CSP 允许应用程序使用 Android Intent 与其他应用程序通信,它为在应用程序之间执行后期运行时绑定提供了一种工具。这种通用机制在 Android Intent 类中包括了一组丰富的方法,可用来自定义 Intent,以满足将 Intent 发送到的应用程序的要求。Intent 的最常见用法是启动应用程序活动。
可以使用 Java 代码创建高度复杂的 Intent,但是让 Intent 尝试描述每个可能的 Intent 是不切实际的。应该是支持最常见的使用案例(启动应用程序活动)以及适度的数据项附加能力,以涵盖其他常见使用案例。
在 Android 中,Intent 是对要执行的操作的抽象描述。必须创建 Intent 并使用以下 API 之一发送:
Intent 可以定义为一个数据结构,它指定要执行的操作、执行该操作所需的数据。Intent 可能包括一个指定要执行操作的“操作”,要操作的数据,以及各种类型的额外数据项,以限定要执行的操作。可通过指明如何发送 Intent、指定 Android 操作名称、主要数据的 URI 和 MIME 类型以及通过附加额外数据来定义 Intent。
注意:Intent 功能未设计用于创建和发送高度复杂的 Intent,尤其是那些需要大量额外数据项或者具有复杂数据类型的 Intent。如果需要复杂的 Intent,Zebra 建议创建并将它们打包成一个 Java 应用程序,然后使用更简单的 Intent 启动该应用程序。
显式 Intent 被定向到某个特定应用程序。它会请求该应用程序,也只能由该应用程序执行所请求的操作。显式 Intent 可使用任何可用的方法发送,但是最常使用 startActivity
或 startService
方法将它定向到特定应用程序中的活动或服务。
如果某个 Intent 指定包名称和类名称,则将它视为显式 Intent,因为它将只发送到特定包名称和类名称标识的特定应用程序。如果未安装具有指定包名称和类名称的应用程序,显式 Intent 会失败。显式 Intent 可以但不是必须指定附加信息,来告诉接收方应用程序如何执行请求的操作。
隐式 Intent 是一个执行某个操作的通用请求,它未指定哪些应用程序应该执行该操作。隐式 Intent 可使用任一可用的方法进行发送,但最常使用 broadcastIntent 发送以请求未指定数量的注册接收方执行某项操作。
如果某个 Intent 未指定包名称和类名称,则将它视为隐式 Intent,因为它未指定要将它发送到的特定应用程序。如果没有合适的注册接收方,隐式 Intent 可能会失败。隐式 Intent 必须指定至少一些信息,以告知接收方应用程序有关要执行的操作以及如何执行操作。
**重要说明:从 Andriod 7.0 Nougat 开始,隐式 Intent 不受到 Intent CSP 的支持。仅在运行 Android N 和更高版本的设备上使用显式 Intent。
用于通过该 Intent 在其他应用程序中调用的操作。
参数名称:操作
选项 | 名称 | 说明 | 需要 |
---|---|---|---|
1 | StartActivity | 使用 startActivity 发送 Intent,以在应用程序内调用活动。 |
MX:4.1+ Android API:1+ |
2 | StartService | 使用 startService 发送 Intent 以启动后服务在应用程序中的操作。 |
MX:4.1+ Android API:1+ |
3 | 广播 | 使用 broadcastIntent 发送 Intent,以在一个或多个应用程序中调用注册的广播接收器(监听器)。 |
MX:4.1+ Android API:1+ |
4 | EnrollDeviceOwner | 发送 Intent 以注册设备所有者(使用“软件包”和“类”参数指定),进行配置和设备管理。对于绕过 Android 设置向导和 GMS 欢迎屏幕非常有用,还适用于非 GMS 设备。 |
MX:6.5+ Android API:24+ |
用于指定 Intent 的接收方要执行的操作的名称。只要有可能,应在已知被预期接收方支持的操作名称中选择指定的操作名称。虽然预定义了许多 Android 操作名称,但是可以添加新的操作名称,这使得可能的操作名称集实际上是无限制的。任何给定的接收方可能仅支持一小部分的操作名称。
注意:由于可能的操作名称集是可扩展的,因此 Intent 对于可指定的操作名称没有施加具体的限制。但是,Android 会拒绝没适合的接收方的 Intent。此外,某些接收方可能需要某个应用程序拥有的权限,然后才能使用某些操作名称发送 Intent。如果试图发送被 Android 系统或特定接收方拒绝的 Intent,将会在结果 XML 中返回错误。
参数值输入规则:
在以下条件下显示:操作不是“注册设备所有者”
参数名称:ActionName
需要:
- MX:4.1+
- Android API:1+
用于指定 Intent 将发送到的应用程序的软件包类型。通过指定此参数可将 Intent 分类为显式,如果没有安装属于指定软件包类型的应用程序,则会导致失败。
参数值输入规则:
在以下条件下显示:操作不是“注册设备所有者”
参数名称:类型
需要:
- MX:4.1+
- Android API:1+
用于指定 Intent 将发送到的应用程序的包名称。通过指定此参数可将Intent 分类为显式,如果没有安装具有指定包名称的应用程序,则会导致失败。始终应该结合使用“包名称”和“类名称”参数来指定应用程序中的类。
参数值输入规则:
在以下条件下显示:操作不是“广播”
参数名称:类型
需要:
- MX:4.1+
- Android API:1+
用于指定 Intent 将发送到的、通过指定包名称标识的应用程序中的类名称。通过指定此参数可将 Intent 分类为显式,如果指定应用程序中没有这样的类,则会导致失败。始终应该结合使用“包名称”和“类名称”参数来指定应用程序中的类。
参数值输入规则:
在以下条件下显示:操作不是“广播”
参数名称:类型
需要:
- MX:4.1+
- Android API:1+
用于指定统一资源标识符 (URI) 以标识 Intent 的主要数据.URI 参数不是必需的,除非有一些主要数据要通过 Intent 请求的操作进行处理,通常是远程服务器上的资源。在大多数情况下,还应该指定 MIME 类型以定义 URI 所参考的数据的类型。
参数值输入规则:
在以下条件下显示:操作为“启动活动”或“启动服务”
参数名称:Uri
需要:
- MX:4.1+
- Android API:1+
用于指定标识 Intent 主要数据的路径和文件名。“文件”参数不是必需的,除非有一些主要数据要通过 Intent 请求的操作进行处理。在某些情况下,还应该指定 MIME 类型以定义文件中数据的类型。
参数值输入规则:
在以下条件下显示:操作为“启动活动”或“启动服务”
参数名称:文件
需要:
- MX:4.1+
- Android API:1+
用于指定 Intent 主要数据的内容 MIME 类型。此参数用于指定将用来执行所请求操作的数据对象的类型。通常为文件或网络资源指定 MIME 类型,以帮助接收方应用程序处理数据。要执行操作的实际数据必须使用“URI”或“文件”参数指定。
参数值输入规则:
参数名称:类型
需要:
- MX:4.1+
- Android API:1+
用于指定要作为额外数据项附加到 Intent 的数据的数据类型。Intent 允许使用设置的提示、参数以及下面所述的数据类型附加和发送最多五个额外数据项。指定多个额外项类型为 ExtraType、Extra1Type、Extra2Type、Extra3Type 和 Extra4Type。
参数名称:ExtraType
选项 | 名称 | 说明 | 需要 |
---|---|---|---|
none | 无 | 此值(或 XML 中缺少此参数)导致不会更改要驸加到 Intent 的对应额外数据选项;任何以前选择的设置都将保留。 |
MX:4.1+ Android API:1+ |
int | 标准整数 | 导致使用“标准整数”数据类型将额外数据项附加到 Intent。因此,提供的值必须为字符串,它表示 -2^31 和 2^31 -1 之间的整数值。 |
MX:4.1+ Android API:1+ |
char | 字符 | 导致使用“字符”数据类型将额外数据项附加到 Intent。因此,提供的值必须是包含一个字符的字符串。 |
MX:4.1+ Android API:1+ |
charsequence | 字符序列 | 导致使用“字符序列”数据类型将额外数据项附加到 Intent。因此,提供的值必须是包含一个字符序列的字符串。此数据类型可用于提供可与“字符串”数据类型比较的值,应该在接收方明确要求“字符串序列”而不是“字符串”时使用。 |
MX:4.1+ Android API:1+ |
float | 浮点 | 导致使用“单精度浮点”数据类型将额外数据项附加到 Intent。因此,提供的值必须为表示有效单精度 32 位 IEEE 754 浮点数的字符串。 |
MX:4.1+ Android API:1+ |
long | 长整型 | 导致使用“长整型”数据类型将额外数据项附加到 Intent。因此,提供的值必须为字符串,它表示 -2^63 和 2^63-1 之间的有效长整数。 |
MX:4.1+ Android API:1+ |
boolean | 布尔 | 导致使用“布尔”数据类型将对应的额外数据项附加到 Intent。提供的值因此必须是表示有效布尔值(“true”或“false”)的字符串。 |
MX:4.1+ Android API:1+ |
char | 字符 | 导致使用“字符”数据类型将额外数据项附加到 Intent。因此,提供的值必须是包含一个字符的字符串。 |
MX:4.1+ Android API:1+ |
short | 短 | 导致使用“短整型”数据类型将对应的额外数据附加到 Intent。因此,提供的值必须为字符串,表示 -2^15 和 2^15-1 之间的有效短整数。 |
MX:4.1+ Android API:1+ |
double | 双精度浮点 | 导致使用“双精度浮点”数据类型将额外数据项附加到 Intent。因此,提供的值必须为表示有效双精度 64 位 IEEE 754 浮点数的字符串。 |
MX:+ |
string | 字符串 | 导致使用“字符序列”数据类型将额外数据项附加到 Intent。因此,提供的值必须是包含一个字符序列的字符串。此数据类型可用于提供可与“字符序列”数据类型比较的值,应该在接收方明确要求“字符串”而不是“字符序列”时使用。 |
MX:4.1+ Android API:1+ |
byte | 单字节整数 | 导致使用“单字节整型”数据类型将对应的额外数据附加到 Intent。因此,提供的值必须为字符串,表示 -2^7 和 2^7-1 之间的有效单字节整数值。 |
MX:4.1+ Android API:1+ |
用于指定要为指定的数据类型不是“无”的任何额外数据项附加的额外数据项名称。指定多个额外项名称为 ExtraName、Extra1Name、Extra2Name、Extra3Name 和 Extra4Name。
注意:Intent 框架不会对可以为额外数据项指定的名称施加具体限制。但是,Zebra 建议按照 Intent 接收方的预期验证准确的“附加名称”,以实现所需的结果。
参数值输入规则:
在以下条件下显示:额外项类型不是“none”
参数名称:ExtraName
需要:
- MX:4.1+
- Android API:1+
用于指定要附加到指定的数据类型不是“none”且具有对应名称的 Intent 的额外数据项的值。指定多个额外项值为 ExtraValue、Extra1Value、Extra2Value、Extra3Value 和 Extra4Value。
参数值输入规则:
在以下条件下显示:额外项类型不是“none”
参数名称:ExtraName
需要:
- MX:4.1+
- Android API:1+
<wap-provisioningdoc><characteristic type="Intent" version="4.3" ><parm name="Action" value="StartActivity"/><parm name="ActionName" value="android.intent.action.MAIN"/><parm name="Package" value="com.sample.myapp"/><parm name="Class" value="com.sample.myapp.MainActivity"/></characteristic></wap-provisioningdoc>
<wap-provisioningdoc><characteristic type="Intent" version="7.0" ><parm name="Action" value="EnrollDeviceOwner"/><parm name="Package" value="com.symbol.osx.testdpc"/><parm name="Class" value="com.symbol.osx.testdpc.AdminClass"/></characteristic></wap-provisioningdoc>