次の方法で共有


PointOfService デバイス オブジェクト

周辺機器の読み取り専用プロパティにアクセスしユニバーサル Windows プラットフォーム (UWP) アプリケーションで排他的に使用するために周辺機器を要求するPointOfService デバイス オブジェクトを作成する方法について説明します。

デバイス オブジェクトの作成

新しい列挙または保存された DeviceID から使用する PointOfService デバイスを特定したら、プログラムによって選択したDeviceIDを使用して FromIdAsync を呼び出すか、ユーザーが新しい Point of Service デバイス オブジェクトを作成するように選択しただけです。

このサンプルでは、DeviceID を使用して、FromIdAsync を使用して新しい BarcodeScanner オブジェクトを作成しようとします。 オブジェクトの作成に失敗した場合は、デバッグ メッセージが書き込まれます。


    BarcodeScanner barcodeScanner = await BarcodeScanner.FromIdAsync(DeviceId);

    if(barcodeScanner != null)
    {
        // after successful creation, claim the scanner for exclusive use and enable it to exchange data
    }
    else
    {
        Debug.WriteLine("Failure to create barcodeScanner object");
    }
    

デバイス オブジェクトを取得したら、デバイスのメソッド、プロパティ、およびイベントにアクセスできます。

デバイス オブジェクトのライフサイクル

Windows 8 より前は、アプリのライフサイクルは単純でした。 Win32 アプリおよび .NET アプリは、実行されているか、実行されていないかのどちらかであり、通常、PointOfService 周辺機器は、アプリのライフサイクル全体に対して要求されます。 ユーザーが最小化したり、ユーザーから切り替えたりすると、ユーザーは引き続き実行されます。 ポータブル デバイスと電源管理がますます重要になるまで、これは問題ありません。

Windows 8 では、UWP アプリを使用した新しいアプリケーション モデルが導入されました。 大まかに言うと、新しい中断状態が追加されました。 UWP アプリは、ユーザーがアプリを最小化するか、別のアプリに切り替えた直後に中断されます。 つまり、オペレーティング システムがリソースを再利用する必要がある場合を除き、アプリのスレッドは停止され、アプリはメモリ内に残ります。また、PointOfService 周辺機器を表すデバイス オブジェクトは、他のアプリケーションが周辺機器にアクセスできるように自動的に閉じられます。 ユーザーがアプリに戻ると、実行中の状態にすばやく復元し、再開時に引き続き使用可能な PointOfService 周辺機器接続を復元できます。

<DeviceObject>.Closed イベント ハンドラーを使用して、何らかの理由でオブジェクトが閉じられたことを検出し、後で接続を再確立するために、デバイス ID をメモしておきます。 または、アプリの一時停止通知でこれを処理し、アプリの再開通知でデバイスの接続を再確立するためにデバイス ID を保存することができます。 イベント ハンドラーでダブルアップして、<DeviceObject>.Closed と App Suspend の両方で、デバイス オブジェクトの操作を重複して実行しないようにしてください。

ヒント

Windows 10 ユニバーサル Windows プラットフォーム (UWP) アプリケーションのライフサイクルの詳細については、次のトピックを参照してください。