检查是否有USB / AC连接

时间:2016-05-15 15:56:20

标签: windows-phone win-universal-app

我正在开发一个通用的Windows Phone应用程序,用于检查是否通过usb或AC充电进行连接。 我用了这段代码:

    var deviceInfo = await DeviceInformation.FindAllAsync(Battery.GetDeviceSelector());
    var aggBattery = Battery.AggregateBattery;
    var report = aggBattery.GetReport();

    report.Status.ToString();

适用于某些设备。 很少有设备(从WP8升级到WP10的设备)需要30秒才能检测到"充电模式"。

1 个答案:

答案 0 :(得分:0)

  

我想知道是否有办法检测usb连接?

要检测USB设备,我们可以使用DeviceWatcher对象来检测设备何时添加到系统或从系统中删除。

对于Windows 10 Universal应用,这是一个很好的示例:Device enumeration sample

  

或获得电池电量?

电池类没有提供获取电池电量的方法。

作为一种解决方法,我们可以使用BatteryReport.RemainingCapacityInMilliwattHours来获取电池的剩余电量,以毫瓦为单位。我们也可以使用BatteryReport.FullChargeCapacityInMilliwattHours来获得电池的充满电的能量容量。然后我们可以使用BatteryReport.RemainingCapacityInMilliwattHours / BatteryReport.FullChargeCapacityInMilliwattHours来获得电池电量。

例如:

var deviceInfo = await DeviceInformation.FindAllAsync(Battery.GetDeviceSelector());
var aggBattery = Battery.AggregateBattery;
var report = aggBattery.GetReport().RemainingCapacityInMilliwattHours;
var report3 = aggBattery.GetReport().FullChargeCapacityInMilliwattHours;
MyText.Text = (report / (double)report3).ToString();