Я хочу переключить общесистемную темную тему из моего приложения Jetpack Compose/Kotlin. Мое приложение имеет разрешение android.permission.WRITE_SECURE_SETTINGS.
Я знаю, что в Android 15 можно программно изменить общесистемную темную тему, поскольку она работает в приложении Tasker (также с разрешением WRITE_SECURE_SETTINGS).
Что НЕ работает:
- Я пробовал это с < strong>UiModeManager, как предложено в этой теме, но ничего не происходит. Я думаю, это потому, что UiModeManager.setNightMode() работает только в режиме автомобиля или рабочего стола.
Код: Выделить всё
application.getSystemService(Context.UI_MODE_SERVICE) as UiModeManager
uiModeManager.nightMode = UiModeManager.MODE_NIGHT_YES
Код: Выделить всё
Settings.Secure.getInt(contentResolver, "ui_night_mode") // Value: 1
Settings.Secure.putInt(contentResolver, "ui_night_mode", 2)
Settings.Secure.getInt(contentResolver, "ui_night_mode") // Value: 2
Похоже, что настройки оболочки adb put secure ui_night_mode 2 работали в предыдущих версиях Android для изменения темы, но точно так же, как и мой программный вариант, тема остается неизменной.
В ADB работает оболочка adb «cmd uimode night yes». Он успешно переключает систему на темную тему, но я понятия не имею, смогу ли я сделать это из своего приложения и как это сделать.
Что я упускаю? Заранее благодарим за любую помощь.
Подробнее здесь: https://stackoverflow.com/questions/791 ... -15-kotlin