最後に使ったデバイスを後で再利用できるように保存する方法 (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.
});
}