Oficjalnie ciemny motyw jest dostępny w Androidzie 10, ale w rzeczywistości ciemny motyw dostępny na przykład w Androidzie 9 MIUI 11. Czy istnieje sposób, aby programowo sprawdzić, czy ciemny motyw systemu operacyjnego jest dostępny, czy nie? Próbowałem to sprawdzić przez Configuration#uiMode
a> pole:
public boolean isSystemDarkAllowed() {
final Configuration configuration = context.getResources().getConfiguration();
final int nightMode = configuration.uiMode & Configuration.UI_MODE_NIGHT_MASK;
return nightMode != Configuration.UI_MODE_NIGHT_UNDEFINED;
}
Ale nie działa, w przypadku Androida 5 zwraca true
1 odpowiedź
Tak, możesz to sprawdzić za pomocą poniższego kodu
switch (getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) {
case Configuration.UI_MODE_NIGHT_YES:
Log.v("BaseActivity","THEME_DARK");
break;
case Configuration.UI_MODE_NIGHT_NO:
Log.v("BaseActivity","THEME_LIGHT");
break;
Edytuj
Dodałem jak poniżej, używając poniższego kodu.
switch (getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) {
case Configuration.UI_MODE_NIGHT_YES:
Log.v("BaseActivity","THEME_DARK");
setTheme(R.style.AppTheme_Dark);
Consts.currentTheme=Consts.THEME_DARK;
break;
case Configuration.UI_MODE_NIGHT_NO:
Log.v("BaseActivity","THEME_LIGHT");
setTheme(R.style.AppTheme);
Consts.currentTheme=Consts.THEME_LIGHT;
break;
Podobne pytania
Nowe pytania
android
Android to mobilny system operacyjny Google, używany do programowania lub tworzenia urządzeń cyfrowych (smartfony, tablety, samochody, telewizory, Wear, Glass, IoT). W przypadku tematów związanych z Androidem użyj tagów specyficznych dla Androida, takich jak android-intent, android-activity, android-adapter itp. W przypadku pytań innych niż programowanie lub programowanie, ale związanych ze strukturą Androida, użyj tego linku: https: // android.stackexchange.com.