关于部分小米机型沉浸式图标变色失败的解决方式
程序员文章站
2022-04-21 17:57:36
...
Android 6.0 的部分小米手机反色失败
具体原因参考: https://dev.mi.com/console/doc/detail?pId=1159
[ANDROID 6.0 , MIUI 7.7.13) 区间的小米过度机型的判断方式
/**
* 兼容[ANDROID 6.0 , MIUI 7.7.13)区间的特殊版本
* <href>https://dev.mi.com/console/doc/detail?pId=1159</>
*/
@SuppressWarnings("all")
public static boolean isSpecialMiUi() {
if (isSpecialMiUi >= 0) {
return isSpecialMiUi == 1;
}
boolean isSpecial = false;
if (isMiUi && Build.VERSION.SDK_INT >= 23 && Build.VERSION.SDK_INT <= 27) {
try {
Class var4 = Class.forName("android.os.SystemProperties");
Method getStringMethod = var4.getDeclaredMethod("get", new Class[]{String.class});
// 2017-7-13 00:00:00 秒单位的版本时间戳 1499875200
String codeTime = (String) getStringMethod.invoke(var4, new Object[]{"ro.miui.version.code_time"});
Log.i(FConstants.TAG.SDK, "MiUi codeTime = " + codeTime);
isSpecial = !TextUtils.isEmpty(codeTime) && Long.valueOf(codeTime) < 1499875200;
} catch (Throwable e) {
Log.e(FConstants.TAG.SDK, "isSpecialMiUi----->", e);
}
}
Log.i(FConstants.TAG.SDK, "isSpecialMiUi = " + isSpecial);
isSpecialMiUi = isSpecial ? 1 : 0;
return isSpecial;
}
private static int isSpecialMiUi = -1;
为 true则使用小米自定义的状态栏图标变色方式,false则使用Android官方变色方式
上一篇: java异常-捕获异常