web-dev-qa-db-ja.com

Android Lollipopバッテリーセーバーがオンになっているかどうかを確認する方法

Android Lollipopには、いつでもオンにできるバッテリーセーバーモードが導入されました。バッテリーが15%以下になると、デフォルトでオンになります。バッテリーセーバーは重要な情報を提供するアニメーションを無効にするため、これは私のアプリに問題を引き起こします。 (コンテキストを提供するために、私のアプリではユーザーがAndroid Wear Watch Faceを構成できます。新しい「テーマ」を保存すると、テーマがアクションバーのボタンに移動するようにアニメーション化されます。彼らはそれがどこに保存されたかを知っています。アニメーションがバッテリーセーバーによって無効にされている場合、それらが保存を押しても何も起こりません。これは混乱を招くと思います。)

それで、バッテリーセーバーがオンになっているかどうかをプログラムで判断する方法はありますか?そうすれば、トーストを表示するなど、アニメーションの代替手段を提供できます。

22
Tony Wickham

見てください 電源マネージャー

バッテリーセーバーがオンになっているかどうかを通知するメソッドisPowerSaveMode()があります

コード例:

PowerManager powerManager = (PowerManager)
    getActivity().getSystemService(Context.POWER_SERVICE);
if (Android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.Lollipop
        && powerManager.isPowerSaveMode()) {
    // Animations are disabled in power save mode, so just show a toast instead.
    Toast.makeText(mContext, getString(R.string.toast), Toast.LENGTH_SHORT).show();
}
36
Andrew Brooke

In Android Lollipop _Battery saver_には、_Battery saver_がOnまたはOffのようにisPowerSaveMode()booleanvlueを返します。

0
HassanUsman