Von Bedeutung
デバイス メタデータは非推奨となり、Windows の今後のリリースで削除される予定です。 この機能の置き換えについては、「 ドライバー パッケージ コンテナー メタデータ」を参照してください。
デバイスの製造元は、デバイスの自動再生ハンドラーとして UWP デバイス アプリを指定できます。 また、他の UWP アプリをデバイスの自動再生ハンドラーとして機能させることもできます。 この記事では、デバイス メタデータ作成ウィザードを使用して自動再生を有効にする方法について説明します。 また、アプリで自動再生のアクティブ化を処理する方法についても説明します。 デバイス アプリの詳細については、「Meet UWP デバイス アプリの」を参照してください。
すべての種類の自動再生にデバイス メタデータを使用する必要はありません。 デバイス メタデータがない場合、自動再生を使用すると、ユーザーがデバイスを PC に接続するときに、アプリをオプションとして提供できます。 これらのデバイスは、カメラやメディア プレーヤーなどの非ボリューム デバイス、または USB サム ドライブ、SD カード、DVD などのボリューム デバイスです。 自動再生では、ユーザーが近接通信 (タップ) を使用して 2 台のコンピューター間でファイルを共有する場合に、アプリをオプションとして登録することもできます。 ただし、デバイス メタデータがないと、アプリを自動的にインストールすることはできません。 デバイス メタデータが必要ない場合に自動再生を使用する方法の詳細については、「 自動再生を使用した自動起動」を参照してください。
自動再生の概要
アプリのバージョンに応じて、次の方法で自動再生を有効にすることができます。
- デバイスの自動再生のアクティブ化を処理できるのは、UWP デバイス アプリのみです (Windows 8、Windows 8.1 でサポート)。
- 他の UWP アプリでは、デバイスの自動再生のアクティブ化を処理できます (Windows 8.1 でのみサポートされています)。
- UWP デバイス アプリとその他の UWP アプリは、デバイスの自動再生のアクティブ化を処理できます (Windows 8.1 でのみサポートされています)。
次の例は、 Contoso ダッシュボード という名前のアプリの自動再生ダイアログを示しています。Contoso Pedometer デバイスの自動再生ハンドラーとして登録されています。
自動再生では、アプリでデバイス メタデータを使用する場合に、次の種類のデバイスがサポートされます。
| デバイス クラス | Windows 8 でサポートされている自動再生 | Windows 8.1 でサポートされている自動再生 |
|---|---|---|
| デジタルスチルカメラ |
|
|
| デジタルビデオカメラ |
|
|
| ポータブル メディア プレーヤー |
|
|
| 携帯 |
|
|
| モバイル ブロードバンド |
|
|
| ウェブカメラ |
|
|
| ヒューマン インターフェイス デバイス (HID) |
|
|
| プリンター、スキャナー、FAX |
|
|
| パソコン |
|
|
| スマート カード |
|
|
| 一般的なポート |
|
|
| 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 にアプリを関連付ける」セクションを参照してください。
デバイス メタデータを作成します。 詳細については、「 手順 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 要素の Name 属性です。
発行元名: アプリ パッケージ マニフェストでは、パブリッシャー名は Identity 要素の Publisher 属性です。
アプリ ID: アプリ パッケージ マニフェストでは、アプリ ID は Application 要素の ID 属性です。
動詞: 動詞は、自動再生のアクティブ化の識別子です。 アプリはそれを使用して、アクティブ化がデバイスから送信されたかどうかを判断します。 Verb 設定には、予約されている open 以外の任意の値を使用できます。
自動再生イベントの種類: このフィールドは デバイスに設定したままにします。 デバイス メタデータでは、ウィザードによって、UWP デバイス アプリに関連付けられているエクスペリエンス ID が自動的に指定されます。
他のアプリをデバイスの自動再生ハンドラーとして機能させる場合は、[ 登録済みアプリの自動再生を有効にする] を選択します。
完了したら、[次へ] を選択します。
[完了] ページが表示されたら、エクスペリエンス ID を書き留めます。 アプリで自動再生のアクティブ化を処理する場合は、次の手順で必要になります。
[保存] 情報を確認し、[保存] を選択してデバイス メタデータ パッケージを更新します。
自動再生のアクティブ化の処理
アプリで自動再生のアクティブ化を処理するには、アプリ パッケージ マニフェストで windows.autoPlayDevice 拡張機能に登録します。 次に、Application オブジェクトの OnActivated イベントでそのイベントを処理します。 アプリは、複数のデバイスの自動再生ハンドラーとして登録できます。
アプリを自動再生ハンドラーとして登録するには
アプリをデバイスの自動再生ハンドラーとして登録するには、UWP デバイス アプリに関連付けられているエクスペリエンス ID、アプリのアクティブ化に使用される自動再生 動詞、 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 設定に任意の値を使用できます (予約済みの オープンを除く)。ActionDisplayName: アプリの自動再生で表示される文字列。Experience ID: アプリをデバイスに関連付けるエクスペリエンス ID GUID。 この GUID は、前の手順で書き留めた値です。
自動再生の有効化を処理するには
デバイスが自動再生のアクティブ化をトリガーすると、アクティブ化の種類が Windows.ApplicationModel.Activation.ActivationKind.device。 アプリがどのようにアクティブ化されたかを確認するには、OnActivatedによって渡されたeventObj オブジェクトを使用します。 自動再生からのものである場合は、 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>
関連資料
- UWP デバイス アプリの紹介
- UWP デバイス アプリを段階的にビルドする
- 自動再生 を使用した自動起動の
- 起動、再開、マルチタスクの管理