PointOfService デバイス オブジェクトPointOfService device objects

デバイス オブジェクトの作成Creating a device object

新しい列挙または保存された DeviceID のいずれかから、使用する PointOfService デバイスを特定したら、プログラムにより選択した、またはユーザーが新しい POS デバイス オブジェクトを作成するために選択した DeviceID を使用して FromIdAsync を呼び出します。Once you have identified the PointOfService device that you want to use, either from a fresh enumeration or a stored DeviceID, you just call FromIdAsync with theDeviceID that you have chosen programmatically or the user has selected to create a new Point of Service device object.

このサンプルでは、DeviceID を使用して FromIdAsync で新しい BarcodeScanner オブジェクトを作成することを試みています。This sample attempts to create a new BarcodeScanner object with FromIdAsync using a DeviceID. オブジェクトの作成に失敗した場合は、デバッグ メッセージが書き込まれます。If there is a failure creating the object a debug message is written.

    BarcodeScanner barcodeScanner = await BarcodeScanner.FromIdAsync(DeviceId);

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

デバイス オブジェクトを作成したら、デバイスのメソッド、プロパティ、およびイベントにアクセスできます。Once you have a device object, you can then access the device's methods, properties and events.

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

Windows 8 より前は、アプリのライフサイクルは単純でした。Before Windows 8, apps had a simple lifecycle. Win32 アプリや .NET アプリは、実行されているか、実行されていないかのどちらかであり、PointOfService 周辺機器は通常、アプリの完全なライフ サイクルに対して要求されています。Win32 and .NET apps are either running or not running and PointOfService peripehrals were usually claimed for the full app lifecycle. ユーザーがアプリを最小化し、他のアプリに切り替えても、アプリは引き続き実行されています。When a user minimizes them, or switches away from them, they continue to run. ポータブル デバイスが台頭し、電源管理がますます重要になるまでは、これで問題はありませんでした。This was fine until portable devices and power management became increasingly important.

Windows 8 では、UWP アプリにより新しいアプリケーション モデルが導入されました。Windows 8 introduced a new application model with UWP apps. 大まかに言うと、新しい中断状態が追加されました。At a high level, a new suspended state was added. UWP アプリは、ユーザーがアプリを最小化するか、別のアプリに切り替えた後、すぐに中断されます。A UWP app is suspended shortly after the user minimizes it or switches to another app. つまり、アプリのスレッドは停止し、オペレーティング システムがリソースを再利用する必要がある場合を除き、アプリはメモリ内に残ります。PointOfService 周辺機器を表すデバイス オブジェクトは自動的に終了し、他のアプリケーションが周辺機器にアクセスできるようになります。This means that the app's threads are stopped, the app is left in memory unless the operating system needs to reclaim resources, and any device objects representing PointOfService peripherals are automatically closed to allow other applications access to the peripherals. ユーザーが元のアプリに切り替えると、アプリはすばやく実行中の状態に復元されます。また、PointOfService 周辺機器が再開時にまだ利用可能であれば、PointOfService 周辺機器の接続が復元されます。When the user switches back to the app, it can be quickly restored to a running state and restore PointOfService peripherals connections provided they are still available on resume.

何らかの理由でオブジェクトが終了したときは .Closed イベント ハンドラーを使用して検出し、今後、接続を再確立するためにデバイス ID を記録します。You can detect when an object is closed for any reason with a .Closed event handler then make note of the device ID for re-establishing the connection in the future. または、アプリの一時停止通知でこれを処理し、アプリの再開通知でデバイスの接続を再確立するためにデバイス ID を保存することができます。Alternatively, you may wish to handle this on an App Suspend notification to save the device ID's for re-establishing the device connections on App Resume notifiation. イベント ハンドラーでダブルアップして .Closed および App Suspend の両方でデバイス オブジェクトの操作を重複しないようにしてください。Make sure that you do not double up on the event handlers and duplicate actions for the device object on both .Closed and App Suspend.


Windows 10 ユニバーサル Windows プラットフォーム (UWP) アプリケーションのライフサイクルの詳細については、次のトピックを参照してください。Please refer to the following topics for more information about Windows 10 Universal Windows Platform (UWP) application lifecycle: