PointOfService 设备对象

了解如何创建 PointOfService 设备对象,以便访问外围设备的只读属性,并声明外围设备以在 通用 Windows 平台 (UWP) 应用程序中独占使用。

创建设备对象

从新的枚举或存储的 DeviceID 中确定要使用的 PointOfService 设备后,只需使用已编程方式选择的 DeviceID 调用 FromIdAsync,或者用户已选择创建新的服务点设备对象。

此示例尝试使用 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 和应用暂停上的设备对象执行重复操作。

提示

有关 Windows 10 通用 Windows 平台 (UWP) 应用程序生命周期的详细信息,请参阅以下主题: