UWP デバイス アプリの自動再生
デバイスの製造元は、デバイスの自動再生ハンドラーとして自社 UWP デバイス アプリを指定できます。 他の UWP アプリをデバイスの自動再生ハンドラーとして機能させることもできます。 このトピックでは、デバイス メタデータの作成ウィザードを使用して、自動再生を有効にする方法について説明しています。 アプリで自動再生のアクティブ化を処理する方法についても説明しています。 デバイス アプリの詳細については、「UWP デバイス アプリの概要」を参照してください。
Note
すべての種類の自動再生にデバイス メタデータを使用する必要はありません。 デバイス メタデータがなくても、自動再生を使用すれば、ユーザーがデバイスを PC に接続するときにオプションとしてアプリを提供できます。 これには、カメラやメディア プレーヤーなどの非ボリューム デバイスや、USB ドライブ、SD カード、DVD などのボリューム デバイスが含まれます。 自動再生を使用すると、ユーザーが近接通信 (タップ) を使用して 2 台のコンピューター間でファイルを共有する場合に、アプリをオプションとして登録することもできます。 ただし、デバイス メタデータがない場合は、アプリを自動的にインストールすることはできません。 デバイス メタデータが必要ない場合に自動再生を使用する方法の詳細については、「自動再生を使用した自動起動」を参照してください。
自動再生の概要
アプリのバージョンに応じて、次の方法で自動再生を有効にできます。
自社の UWP デバイス アプリでのみ、デバイスの自動再生のアクティブ化を処理できる (Windows 8、Windows 8.1 でサポートされています)。
他の UWP アプリでデバイスの自動再生のアクティブ化を処理できる (Windows 8.1 でのみサポートされています)。
自社の UWP デバイス アプリと他の UWP アプリで、デバイスの自動再生のアクティブ化を処理できる (Windows 8.1 でのみサポートされています)。
次の例は、Contoso Pedometer デバイスの自動再生ハンドラーとして登録されている、Contoso ダッシュボードという名前のアプリの自動再生ダイアログを示しています。
アプリでデバイス メタデータを使用する場合、自動再生では次のデバイスの種類がサポートされます。
デバイス クラス | Windows 8 でサポートされている自動再生 | Windows 8.1 でサポートされている自動再生 |
---|---|---|
デジタル スチル カメラ | ||
デジタル ビデオ カムコーダー | ||
ポータブル メディア プレーヤー | ||
携帯電話 | ||
モバイル ブロードバンド | ||
Web カメラ | ||
ヒューマン インターフェイス デバイス (HID) | ||
プリンター、スキャナー、FAX | ||
PC | ||
スマート カード | ||
一般ポート | ||
Bluetooth デバイス |
開始する前に
デバイス メタデータ作成ウィザードがあることを確認します。 自動再生を有効にするのに必要です。 このリリースでは、このウィザードは 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 アプリをデバイスの自動再生ハンドラーとして機能させることもできます。 これらのオプションのどちらか、または両方を選択できます。
デバイス メタデータ作成ウィザードで自動再生を有効にするには**
DeviceMetadataWizard.exe をダブルクリックして、%ProgramFiles(x86)%\Windows Kits\8.1\bin\x86 からデバイス メタデータ作成ウィザードを開始します。
[デバイス メタデータの編集] をクリックします。 これにより、既存のデバイス メタデータ パッケージを編集できます。
[開く] ダイアログ ボックスで、UWP デバイス アプリに関連付けられているデバイス メタデータ パッケージを見つけます。 (devicemetadata-ms ファイル拡張子が付いています)
(省略可能。) デバイス アプリのパッケージ名、発行元名、アプリ ID が手元にない場合は、[アプリ情報] をクリックして、UWP デバイス アプリのパッケージ情報を表示します。
[Windows 情報] をクリックして、自動再生の詳細を指定します。
アプリをデバイスの既定の自動再生ハンドラーとして指定する場合は、[UWP デバイス アプリを使用する] を選択します。 任意の UWP アプリまたは UWP デバイス アプリを選択できますが、そのアプリで、デバイスの自動再生のアクティブ化を処理し、アプリ パッケージ マニフェストで対応するエクスペリエンス ID を指定する必要があります (次の手順での説明)。
Package name: アプリ パッケージ マニフェストでは、これは Identity 要素の Name 属性です。
Publisher name: アプリ パッケージ マニフェストでは、これは Identity 要素の Publisher 属性です。
App ID: アプリ パッケージ マニフェストでは、これは Application 要素の ID 属性です。
Verb: これは、自動再生のアクティブ化の識別子です。 アプリではそれを使用して、アクティブ化がデバイスから実行されたかどうかを判断します。 Verb 設定には任意の値を設定できますが、open (予約済み) は除きます。
AutoPlay event type: Device のままにします。 デバイス メタデータでは、ウィザードによって、UWP デバイス アプリに関連付けられているエクスペリエンス ID が自動的に指定されます。
他のアプリをデバイスの自動再生ハンドラーとして機能させる場合は、[登録済みアプリの自動再生を有効にする] を選択します。
終了したら [次へ]をクリックします。
[完了] ページが表示されたら、エクスペリエンス ID を書き留めます。 アプリで自動再生のアクティブ化を処理する場合は、次の手順でそれが必要になります。
[情報の保存] 確認し、[保存] をクリックしてデバイス メタデータ パッケージを更新します。
自動再生のアクティブ化の処理
アプリで自動再生のアクティブ化を処理するには、アプリケーション オブジェクトが発生した場合に、windows.autoPlayDevice
アプリ パッケージ マニフェストで拡張機能に登録してから、そのイベントを処理OnActivated
する必要があります。 アプリは、複数のデバイスの自動再生ハンドラーとして登録できることにご注意ください。
アプリを自動再生ハンドラーとして登録するには
アプリをデバイスの自動再生ハンドラーとして登録するには、UWP デバイス アプリに関連付けられているエクスペリエンス ID と、アプリのアクティブ化に使用される自動再生の Verb と ActionDisplayName を指定する必要があります。
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
: これは、自動再生のアクティブ化の識別子です。 アプリではそれを使用して、アクティブ化がデバイスから実行されたかどうかを判断します。 アプリがデバイスの既定の自動再生ハンドラーとして指定されていた場合、この値はデバイス メタデータで指定した Verb と一致するはずです。 アプリがデバイスの既定の自動再生ハンドラーとして指定されていなかった場合は、Verb 設定に任意の値を使用できますが、open (予約済み) は除きます。ActionDisplayName
: アプリの自動再生で表示される文字列。Experience ID
: アプリをデバイスに関連付けるエクスペリエンス ID GUID。 これは、前の手順で書き留めた値です。
自動再生のアクティブ化を処理するには
デバイスが自動再生のアクティブ化をトリガーすると、アクティブ化の種類は Windows.ApplicationModel.Activation.ActivationKind.device
になります。 eventObj
によって渡された OnActivated
オブジェクトを使用して、アプリがどのようにアクティブ化されたかを確認します。 自動再生からのものである場合は、eventObj
を使用して、アクティブ化の原因となったデバイス ID と自動再生の verb を確認します。
この例では、アクティブ化イベント パラメーター (eventObj) には、デバイスの ID とアクティブ化の verb が含まれています。
<!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>