gpt4 book ai didi

android - 检测 Android 设备主题(是深色还是浅色)

转载 作者:太空狗 更新时间:2023-10-29 14:45:52 25 4
gpt4 key购买 nike

您可以为您的应用设置主题,但我想知道是否有可能找出设备使用的主题。目前,我的应用程序使用 Theme.AppCompat.Light。我想避免更改主题。

附言我已经尝试将它设置为 Theme.DeviceDefault 并使用反射访问它的 ID,但到目前为止没有成功。

try {
setTheme(android.R.style.Theme_DeviceDefault);

Class<Context> contextClass = Context.class;
Method getThemeMethod = contextClass.getMethod("getThemeResId");
getThemeMethod.setAccessible(true);
Log.d("Test", "" + getThemeMethod.invoke(this)); // Always returns 0

PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_META_DATA);
Log.d("Test", getResources().getResourceEntryName(packageInfo.applicationInfo.theme)); // Returns 'Theme.DeviceDefault'
} catch (Exception e) {
Log.d("Test", "exception", e);
}

最佳答案

int currentNightMode = getContext().getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;  
switch (currentNightMode) {
case Configuration.UI_MODE_NIGHT_NO:
// Night mode is not active on device
break;
case Configuration.UI_MODE_NIGHT_YES:
// Night mode is active on device
break;
}

关于android - 检测 Android 设备主题(是深色还是浅色),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40357331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com