Windows Phone 8 中檢測推送通知是否會因為節電模式而被禁用

暖楓無敵發表於2014-03-13

        用於啟用此功能的 API 僅在具有 (作業系統版本號 8.0.10492)或更高版本的裝置上可用。在嘗試使用此功能之前,您必須檢查裝置的作業系統版本。

        如果使用者已在其手機上啟用節電模式功能,且電池低於使節電模式處於活動狀態的最小電量閾值,將禁用推送通知的接收以節省電源。如果您的應用很大程度上依賴於推送通知,建議您檢測何時啟用節電模式,並警告使用者當節電模式處於活動狀態時將不會收到推送通知。

        若要檢測何時啟用節電模式,您必須檢測 PowerManager.PowerSavingModeEnabled 屬性。因為此屬性僅可用於執行 的裝置,因此您必須在檢查裝置作業系統版本後通過反射訪問此屬性。以下示例向您顯示瞭如何檢測節電模式當前是否處於啟用狀態。



using Windows.Phone.System.Power;

public void CheckBatterySaverState()
{
    // The minimum phone version that supports the PowerSavingModeEnabled property
    Version TargetVersion = new Version(8, 0, 10492);

    if (Environment.OSVersion.Version >= TargetVersion) 
    {
        // Use reflection to get the PowerSavingModeEnabled value
        bool powerSaveOn = (bool)
            typeof(PowerManager).GetProperty("PowerSavingModeEnabled").GetValue(null, null);

        if (powerSaveOn)
        {
            MessageBox.Show("Battery Saver enabled. This app won’t receive notifications when Battery Saver is active.");
        }
    }
}


相關文章