#android #android-darkmode
#Android #android-темный режим
Вопрос:
Я пытаюсь создать приложение, которое переключает темный режим (ночной режим) для всей системы. Не только для моего приложения. Я создаю и автоматизирую приложение, поэтому пользователь решает, что включить или отключить, одним касанием.
Чтобы активировать ночной режим, я делаю это:
UiModeManager oUiModeManager = (UiModeManager) getApplicationContext().getSystemService(Context.UI_MODE_SERVICE);
oUiModeManager.setNightMode(UiModeManager.MODE_NIGHT_YES);
и для деактивации я делаю это:
UiModeManager oUiModeManager = (UiModeManager) getApplicationContext().getSystemService(Context.UI_MODE_SERVICE);
oUiModeManager.setNightMode(UiModeManager.MODE_NIGHT_NO);
Но ничего не происходит. Темный режим не активируется и не деактивируется.
Я пробовал с устройствами Android 10-Q, Android 11-R и Android 12-S.
Итак, как я должен это решить? Помните, что мне нужно переключить весь системный темный режим, а не только для моего приложения.
Спасибо
Отслеживание проблем здесь: https://issuetracker.google.com/issues/173628055 Но не ответы от разработчиков Google.
Ответ №1:
Не похоже, что эти флаги оказывают какое-либо влияние на систему. Приложение настроек не использует их для переключения темного режима.
Метод, который вызывает приложение «Настройки», скрыт, поэтому у приложения нет законного способа вызвать его.
Я смог включить темный режим на Android 11, используя этот метод через отражение с библиотекой, чтобы обойти ограничения отражения.
Комментарии:
1. Спасибо. Но в документах указано «setNightMode: устанавливает общесистемный ночной режим».
2. Смотрите здесь: developer.android.com/reference/android/app /…
3. Возможно, тогда вам следует открыть проблему в Android issue tracker. Лично я не верю, что это когда-либо работало так, как описано.
4. Я тоже так думаю. Спасибо.
5. Не могли бы вы подробнее рассказать о том, как вы это сделали? Какая библиотека, compileSdk, может быть, фрагмент кода. Спасибо.
Ответ №2:
У Android offical есть образец DarkTheme.Но я не знаю, работает ли это
Комментарии:
1. В этом примере показано, как установить Темную тему для вашего собственного приложения. Я прошу изменить темный режим для всей системы.