1. ホーム
  2. android

[解決済み] Android - AppCompatDelegate.MODE_NIGHT_AUTO を使ってナイトモードがオンになっているかどうかを検出する方法

2023-06-26 10:13:23

質問

アンドロイドに内蔵されているデイナイトモード機能を使用していますが、私のアプリに以下のオプションを追加したいです。 AppCompatDelegate.MODE_NIGHT_AUTO

しかし、私のアプリはプログラムによって特定のものに色を付ける必要があり、アプリが夜間モードか昼間モードかを確認する方法がわからないという問題があります。 それがなければ、正しい色を選択するためのフラグを設定することができません。

呼び出し AppCompatDelegate.getDefaultNightMode() は、AppCompatDelegate.MODE_NIGHT_AUTOを返すだけで、意味がありません。

他にわかるようなことはないのですが、何かあるのでしょうか?

どのように解決するのですか?

int nightModeFlags =
    getContext().getResources().getConfiguration().uiMode &
    Configuration.UI_MODE_NIGHT_MASK;
switch (nightModeFlags) {
    case Configuration.UI_MODE_NIGHT_YES:
         doStuff();
         break;

    case Configuration.UI_MODE_NIGHT_NO:
         doStuff();
         break;

    case Configuration.UI_MODE_NIGHT_UNDEFINED:
         doStuff();
         break;
}