共用方式為


UWP 裝置應用程式的自動播放

裝置製造商可以將其 UWP 裝置應用程式指定為其裝置的自動播放處理程式。 他們也可以讓其他 UWP 應用程式做為其裝置的自動播放處理程式。 本主題描述如何使用裝置元數據撰寫精靈來啟用自動播放。 它也會說明如何處理應用程式中的自動播放啟用。 如需裝置應用程式的詳細資訊,請參閱 滿足 UWP 裝置應用程式

注意

您不需要針對所有類型的自動播放使用裝置元數據。 如果沒有裝置元數據,AutoPlay 可讓您在使用者將裝置連線到計算機時,提供您的應用程式作為選項。 這包括非磁碟區裝置,例如相機或媒體播放機,或USB拇指磁碟驅動器、SD 記憶卡或 DVD 等磁碟區裝置。 自動播放也可讓使用者使用近接式 (點選) 在兩部計算機之間共用檔案時,將您的應用程式註冊為選項。 但您的應用程式無法在沒有裝置元數據的情況下自動安裝。 如需在不需要裝置元數據時使用自動播放的詳細資訊,請參閱 使用自動播放自動啟動。

自動播放概觀

視您的應用程式版本而定,您可以透過下列方式啟用自動播放:

  • 只有您的 UWP 裝置應用程式可以處理裝置的自動播放啟用(Windows 8、Windows 8.1 支援)。

  • 其他UWP app可以處理裝置的自動播放啟用(僅限 Windows 8.1 支援)。

  • 您的 UWP 裝置應用程式和其他 UWP app 可以處理裝置的自動播放啟用(僅限 Windows 8.1 支援)。

此範例會顯示名為 Contoso 儀錶板之應用程式的自動播放對話框,其已註冊為 Contoso Pedometer 裝置的 AutoPlay 處理程式:

example autoplay dialog for a device.

搭配您的應用程式使用裝置元數據時,AutoPlay 支援下列裝置類型:

Device 類別 Windows 8 中支援的自動播放 Windows 8.1 中支持的自動播放
數位靜止相機 autoplay is supported for this device class in windows 8. autoplay is supported for this device class in windows 8.1
數字視訊攝影機 autoplay is supported for this device class in windows 8. autoplay is supported for this device class in windows 8.1
可攜式媒體播放機 autoplay is supported for this device class in windows 8. autoplay is supported for this device class in windows 8.1
手機 autoplay is supported for this device class in windows 8. autoplay is supported for this device class in windows 8.1
行動寬頻 autoplay is not supported for this device class in windows 8. autoplay is not supported for this device class in windows 8.1
網路攝影機 autoplay is not supported for this device class in windows 8. autoplay is not supported for this device class in windows 8.1
人類介面裝置 (HID) autoplay is not supported for this device class in windows 8. autoplay is supported for this device class in windows 8.1
印表機、掃描器、傳真 autoplay is not supported for this device class in windows 8. autoplay is not supported for this device class in windows 8.1
電腦 autoplay is not supported for this device class in windows 8. autoplay is not supported for this device class in windows 8.1
智慧卡 autoplay is not supported for this device class in windows 8. autoplay is supported for this device class in windows 8.1
一般埠 autoplay is not supported for this device class in windows 8. autoplay is supported for this device class in windows 8.1
藍牙裝置 autoplay is not supported for this device class in windows 8. autoplay is not supported for this device class in windows 8.1

開始之前

  • 請確定您有裝置元數據撰寫精靈。 您將需要它才能啟用自動播放。 在此版本中,此精靈隨附於 Microsoft Visual Studio Professional 和 Microsoft Visual Studio Ultimate。 但是,如果您有 Microsoft Visual Studio Express for Windows,則需要下載 適用於 Windows 8.1 的獨立 SDK 以取得精靈。

  • 將您的應用程式與 Microsoft Store 產生關聯。 您將需要應用程式的套件資訊,才能啟用自動播放。 如需詳細資訊,請參閱步驟 1:建立 UWP 裝置應用程式的<將您的應用程式與 Microsoft Store 建立關聯>一節

  • 建立裝置元數據。 如果您尚未啟動,請參閱建置 UWP 裝置應用程式逐步指南中的步驟 2:建立裝置元數據。

啟用自動播放

[ 裝置元數據撰寫精靈 ] 可讓您將 UWP 應用程式宣告為裝置的預設自動播放處理程式。 您也可以讓其他 UWP 應用程式做為裝置的自動播放處理程式。 您可以選擇這些選項或這兩個選項。

若要使用裝置元數據撰寫精靈啟用自動播放**

  1. 按兩下 [DeviceMetadataWizard.exe],從 %ProgramFiles(x86)%\Windows Kits\8.1\bin\x86 啟動 [裝置元數據撰寫精靈]。

  2. 按兩下 [ 編輯裝置元數據]。 這可讓您編輯現有的裝置元數據套件。

  3. 在 [ 開啟 ] 對話框中,找出與您的 UWP 裝置應用程式相關聯的裝置元數據套件。 (它有 devicemetadata-ms 擴展名。)

  4. (選擇性。)如果您沒有裝置應用程式的套件名稱、發行者名稱和應用程式識別碼,請按兩下 [應用程式資訊 ] 來檢視 UWP 裝置應用程式的封裝資訊。

  5. 按兩下 [Windows 資訊] 以指定 [自動播放詳細資料]。

  6. 如果您想要將應用程式指定為裝置的預設自動播放處理程式,請選取 [使用 UWP 裝置應用程式]。 您可以選取任何 UWP 應用程式或 UWP 裝置應用程式,但該應用程式必須處理裝置的自動播放啟用,並在應用程式套件指令清單中指定對應的體驗識別碼(如下一個程式所指定)。

    • 套件名稱:在應用程式套件指令清單中,這是 Identity 元素的 Name 屬性。

    • 發行者名稱:在應用程式套件指令清單中,這是 Identity 元素的 Publisher 屬性。

    • 應用程式標識碼:在應用程式套件指令清單中,這是 Application 元素的 ID 屬性。

    • 動詞:這是自動播放啟用的標識碼。 您的應用程式會使用它來判斷啟用是否來自您的裝置。 您可以使用 Verb 設定的任何值,但 已保留的 open 除外。

    • 自動播放事件類型:將此保留為 [裝置]。 在裝置元數據中,精靈會自動指定與您的 UWP 裝置應用程式相關聯的體驗標識碼。

  7. 如果您想要讓其他應用程式作為裝置的自動播放處理程式,請選取 [為已註冊的應用程式啟用自動播放]。

  8. 完成時,請按 [ 下一步]。

  9. 當您看到 [ 完成] 頁面時,記下 [體驗標識符]。 當您在應用程式中處理自動播放啟用時,在下一個程式中需要用到它。

  10. 確認您的 儲存資訊 ,然後按兩下 [ 儲存 ] 以更新您的裝置元數據套件。

處理自動播放啟用

若要處理應用程式中的自動播放啟用,您必須在應用程式套件指令清單中註冊 windows.autoPlayDevice 擴充功能,然後在 Application 物件事件中 OnActivated 處理該事件。 請注意,您的應用程式可以註冊為多個裝置的自動播放處理程式。

將您的應用程式註冊為自動播放處理程式

若要將您的應用程式註冊為裝置的自動播放處理程式,您必須指定與您的 UWP 裝置應用程式相關聯的體驗標識碼,以及將用來啟動應用程式的 AutoPlay VerbActionDisplayName

  1. 在 Microsoft Visual Studio 中開啟應用程式的專案。

  2. 方案總管 中,以滑鼠右鍵按兩下 Package.appxmanifest 檔案,然後選取 [檢視程序代碼]。 這會在 XML (文字) 編輯器中顯示應用程式套件指令清單。

  3. 在 元素下方 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>
    
  4. 以您應用程式的實際值取代此範例中的 AutoPlay 值:

    • Verb:這是自動播放啟用的識別碼。 您的應用程式會使用它來判斷啟用是否來自您的裝置。 如果您的應用程式已指定為裝置的預設自動播放處理程式,此值應該符合 您在裝置元數據中指定的 Verb 。 如果您的應用程式未指定為裝置的預設自動播放處理程式,您可以使用 [動詞] 設定的任何值,但已保留的 [開啟] 除外

    • ActionDisplayName:自動播放針對您的應用程式顯示的字串。

    • Experience ID:將您的應用程式與裝置建立關聯的體驗標識元 GUID。 這是您在上一個程式中記下的值。

處理自動播放啟用

當您的裝置觸發自動播放啟用時,啟用種類會是 Windows.ApplicationModel.Activation.ActivationKind.deviceeventObj使用 傳遞OnActivated的物件來檢查您的應用程式啟動方式。 如果它來自 AutoPlay,您可以使用 eventObj 來判斷哪個裝置識別碼和自動播放動詞造成啟用。

在此範例中,啟用事件參數 (eventObj) 會攜帶裝置的標識碼,以及啟用的動詞。

<!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>

符合 UWP 裝置應用程式

逐步建置 UWP 裝置應用程式

使用自動播放功能來自動啟動

Launching, resuming, and multitasking