首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >windows 8的GetSystemPowerStatus

windows 8的GetSystemPowerStatus
EN

Stack Overflow用户
提问于 2012-12-03 13:45:08
回答 3查看 2.6K关注 0票数 1

我在windows 8 sdk中看到了winbase.h (WINAPI)文件(kernel32.dll),它具有以下功能:

GetSystemPowerStatus,它将返回电池状态(SYSTEM_POWER_STATUS)

。问题是这在模拟器上抛出和异常,而不是在手机上测试(等待得到一个)。

我用过

代码语言:javascript
运行
复制
 [DllImport("Kernel32")]
   private static extern Boolean GetSystemPowerStatus( SystemPowerStatus sps );

代码符合,但在运行时抛出异常。

任何想法,这将工作在手机上,或这是根本不支持windows phone 8?

EN

回答 3

Stack Overflow用户

发布于 2012-12-03 16:39:41

正如AnderZubi所说,这不是Windows 8上支持的Win32 API,但是您可以从本地C/C++代码中调用一个等价的WinRT API。这与马丁发布的C# API非常相似。

如果您已经使用了C/C++,那么使用WinRT版本可以节省您在C++和C#之间架设桥梁的需要。如果你开始使用XAML/C#的新应用程序,那么Martin的答案就会更简单。

例如:

代码语言:javascript
运行
复制
int WindowsPhoneRuntimeComponent::GetBatteryRemainingPercent()
{
    auto battery = Windows::Phone::Devices::Power::Battery::GetDefault();
    int remainingPercent = battery->RemainingChargePercent;
    return remainingPercent;
}
票数 2
EN

Stack Overflow用户

发布于 2012-12-03 14:01:58

如果您只想访问电池信息和bool属性,如果手机上有充电器,您可以使用:

代码语言:javascript
运行
复制
using Microsoft.Phone.Info;
using Windows.Phone.Devices.Power;

namespace Core.Helpers
{
    public class BatteryHelper
    {
        public static int BateryLevel
        {
            get
            {
                return Battery.GetDefault().RemainingChargePercent;
            }
        }

        public static bool IsCharging
        {
            get
            {
                return DeviceStatus.PowerSource == PowerSource.External;
            }
        }
    }
}
票数 1
EN

Stack Overflow用户

发布于 2012-12-03 14:04:17

GetSystemPowerStatus不在Windows 8支持的Win32 API列表中:

http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj662956(v=vs.105).aspx

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13684562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档