重要
设备元数据已弃用,并将在 Windows 的将来版本中删除。 有关替代功能的信息,请参阅驱动程序包容器元数据。
设备制造商可以将其 UWP 设备应用指定为其设备的自动播放处理程序。 它们还可以让其他 UWP 应用充当其设备的自动播放处理程序。 本文介绍如何使用设备元数据创作向导启用自动播放。 它还介绍了如何在应用中处理自动播放激活。 有关设备应用的更多信息,请参阅 了解 UWP 设备应用。
无需对所有类型的自动播放使用设备元数据。 如果没有设备元数据,AutoPlay 允许用户在将设备连接到电脑时提供应用作为选项。 这些设备包括相机或媒体播放器等非容量设备,或 U 盘、SD 卡或 DVD 等容量设备。 当用户使用邻近感应(点击)在两台计算机之间共享文件时,AutoPlay 还允许你将应用注册为一个选项。 但是,你的应用无法在没有设备元数据的情况下自动安装。 有关在不需要设备元数据时使用自动播放的详细信息,请参阅 使用自动播放自动启动。
自动播放概述
根据应用的版本,可以通过以下方式启用自动播放:
- 只有 UWP 设备应用可以处理设备的自动播放激活(在 Windows 8、Windows 8.1 中受支持)。
- 其他 UWP 应用可以处理设备的自动播放激活(仅在 Windows 8.1 中受支持)。
- UWP 设备应用和其他 UWP 应用可以处理设备的自动播放激活(仅在 Windows 8.1 中受支持)。
此示例显示了名为 Contoso Dashboard 的应用的自动播放对话框,该应用已注册为 Contoso Pedometer 设备的自动播放处理程序:
在将设备元数据用于应用时,AutoPlay 支持以下设备类型:
| 设备分类 | Windows 8 中支持的自动播放 | Windows 8.1 中支持的自动播放 |
|---|---|---|
| 数字静止相机 |
|
|
| 数字视频摄像机 |
|
|
| 可移植媒体播放器 |
|
|
| 手机 |
|
|
| 移动宽带 |
|
|
| 摄像头 |
|
|
| 人体学接口设备 (HID) |
|
|
| 打印机、扫描仪、传真 |
|
|
| 个人电脑 |
|
|
| 智能卡 |
|
|
| 常规端口 |
|
|
| 蓝牙设备 |
|
|
在您开始之前
确保您具备设备元数据创作软件向导。 需要它才能启用自动播放。 在此版本中,此向导包含在 Microsoft Visual Studio Professional 和 Microsoft Visual Studio Ultimate 中。 但是,如果您拥有 Microsoft Visual Studio Express 版,则需要下载适用于 Windows 8.1 的独立 SDK 以获取向导。
将应用与 Microsoft 应用商店相关联。 您需要应用程序的包信息才能启用自动播放。 有关详细信息,请参阅步骤 1:创建 UWP 设备应用的“将应用与Microsoft应用商店”部分相关联。
创建设备元数据。 有关详细信息,请参阅步骤 2:在“生成 UWP 设备应用”分步指南中创建设备元数据。
启用自动播放
使用 “设备元数据创作向导” 可将 UWP 应用声明为设备的默认自动播放处理程序。 还可以让其他 UWP 应用充当设备的自动播放处理程序。 可以选择这两个选项之一或两个选项都选。
使用设备元数据创作向导启用自动播放**
通过双击 DeviceMetadataWizard.exe,从 %ProgramFiles(x86)%\Windows Kits\8.1\bin\x86 启动设备元数据创作向导。
若要编辑现有的设备元数据包,请选择“ 编辑设备元数据”。
在 “打开 ”对话框中,找到与 UWP 设备应用关联的设备元数据包。 (它具有 devicemetadata-ms 文件扩展名。)
(可选。)如果没有设备应用的程序包名称、发布者名称和应用 ID 在手,请选择 应用信息 以查看 UWP 设备应用的打包信息。
选择 Windows 信息 以指定自动播放详细信息。
如果要将应用指定为设备的默认自动播放处理程序,请选择 “使用 UWP 设备应用”。 可以选择任何 UWP 应用或 UWP 设备应用。 但是,该应用必须处理设备的自动播放激活。 该应用还必须在应用程序包清单中指定对应的体验 ID(在下一个步骤中指定)。
包名称:在应用包清单中,包名称是 Identity 元素的名称属性。
发布者名称:在应用包清单中,发布者名称是 Identity 元素的 Publisher 属性。
应用 ID:在应用包清单中,应用 ID 是 Application 元素的 ID 属性。
Verb: Verb 是自动播放激活的标识符。 你的应用使用它来确定激活是否来自你的设备。 谓词设置可以使用任何值,但“打开”除外,因为它是保留项。
自动播放事件类型:将此字段设置为 “设备”。 在设备元数据中,向导会自动指定与 UWP 设备应用关联的体验 ID。
如果要让其他应用充当设备的自动播放处理程序,请选择 “为已注册的应用启用自动播放”。
完成后,选择“下一步”。
看到完成页面时,记下体验 ID。 在处理应用中的自动播放激活时,在下一过程中需要用到它。
验证 保存信息 ,然后选择“ 保存 ”以更新设备元数据包。
处理自动播放激活
若要处理应用中的自动播放激活,请在应用包清单中注册扩展 windows.autoPlayDevice 。 然后,在 OnActivated Application 对象的事件中处理该事件。 你的应用程序可以注册为多个设备的自动播放处理程序。
将您的应用注册为自动播放处理程序
若要将应用注册为设备的自动播放处理程序,请指定与 UWP 设备应用、用于激活应用的 AutoPlay Verb 和 ActionDisplayName 关联的体验 ID。
在 Microsoft Visual Studio 中打开应用的项目。
在 解决方案资源管理器中,右键单击 Package.appxmanifest 文件并选择“ 查看代码”。 此选项在 XML (文本) 编辑器中显示应用包清单。
在
Application元素中,在VisualElements元素下方,将以下Extensions元素粘贴到你的包清单文件中。<Extensions> <Extension Category="windows.autoPlayDevice"> <AutoPlayDevice> <LaunchAction Verb="showDevice1" ActionDisplayName="Launch App for Device 1" DeviceEvent="ExperienceID:{00000000-ABCD-EF00-0000-000000000000}"/> </AutoPlayDevice> </Extension> </Extensions>将此示例中的“自动播放”值替换为应用的实际值:
Verb:自动播放激活的标识符。 你的应用使用它来确定激活是否来自你的设备。 如果应用被指定为设备的默认自动播放处理程序,则此值应与你在设备元数据中指定的 谓词 匹配。 如果你的应用未被指定为设备的默认自动播放处理程序,你可以使用任何值来设置谓词,但打开除外,该值为保留值。ActionDisplayName:AutoPlay为应用显示的字符串。Experience ID:将应用与设备关联的体验 ID GUID。 这个 GUID 是你在上一过程中记下的值。
处理自动播放激活
当设备触发自动播放激活时,激活类型为 Windows.ApplicationModel.Activation.ActivationKind.device。 要检查应用程序的激活方式,请使用由 eventObj 传递的 OnActivated 对象。 如果它来自自动播放,则可以使用 eventObj 来确定是哪个设备 ID 和自动播放谓词导致了激活。
在此示例中,激活事件参数 (eventObj) 携带设备的 ID 和激活谓词。
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function OnActivated(eventObj) {
if (eventObj.kind == Windows.ApplicationModel.Activation.ActivationKind.launch) {
// Activated by the user.
}
else if (eventObj.kind == Windows.ApplicationModel.Activation.ActivationKind.device) {
// Activated by a device, for AutoPlay.
// Device path = eventObj.deviceInformationId;
// verb ("showDevice1") = eventObj.verb;
}
}
Windows.UI.WebUI.WebUIApplication.addEventListener("activated", OnActivated, false);
</script>
</head>
<body>
...
...
...
</body>
</html>