最後に使ったデバイスを後で再利用できるように保存する方法 (HTML)

ここでは、DeviceInformation.CreateFromIdAsync を呼び出して、保存されているデバイス ID からデバイスの情報を取得する方法を説明します。

理解しておく必要があること

テクノロジ

  • Windows Runtime

必要条件

JavaScript と HTML について理解している必要があります。

手順

デバイス インターフェイス ID を createFromIdAsync に渡す

デバイスを使う必要があるアプリを初めて実行するときは、使用可能なデバイスを列挙し、列挙結果から DeviceInformation オブジェクトを選び、デバイスにアクセスするために DeviceInformation.Id プロパティを Windows ランタイム API に渡します。 アプリでこのデバイス ID を保存しておくことをお勧めします。そうすると、次にアプリを実行するとき、列挙を開始する前に、最後に使ったデバイスが利用可能かどうかを調べることで、アプリをいっそうすばやく開始できます。

この関数の savedDeviceID パラメーターは最後に使ったデバイスの ID です。次のコードでは、createFromIdAsync を呼び出して DeviceInformation オブジェクトを作り、成功とエラーの結果を処理する 2 つの匿名関数を定義しています。メソッドが成功すると、アプリは DeviceInformation オブジェクトを使って、デバイスを使うための API に渡す前に、デバイスのインターフェイスが有効になっているかどうかを調べます。

function getLastUsedDeviceInfo(savedDeviceID) {

    // Create a DeviceInformation object from the ID.
    var Enum = Windows.Devices.Enumeration;
    var DevInf = Enum.DeviceInformation;
    DevInf.createFromIdAsync(savedDeviceId).then(
        function(devinfo) {             
            printMessage("Found last-used device. Name: " + devinfo.name);
            if (devinfo.isEnabled) {
                // Add code to pass devinfo.id to an appropriate API.
                // For instance, if devinfo is a camera, use the id property 
                // to select the camera as the one the Camera Capture API
                // should use, by setting the VideoDeviceId property of 
                // Windows.Media.Capture.MediaCaptureInitializationSettings.
            } else { 
                // Handle the case of the device not being enabled.
            }
        },
        function (e) {
            displayError("Failed to create DeviceInformation: " + e.message);
            // Since the last-used device wasn't found, add code here
            // to call FindAllAsync or CreateWatcher to find other devices.
        });
}