我正在连接 SystemUI 快速切换背景,并根据所选颜色对其进行更改,我正在尝试先将其更改为静态颜色,而不是可更改的颜色。
问题是,在执行此代码时,有时它可以工作,有时它不会工作,检查日志,它说的是我输入的相同。
当我锁定手机时,它会恢复到原来的颜色。
如您所见,这是一个视图,我有 dex2jar SystemUI,并将其作为库添加到我的 APK 项目中,并实现了该类并对其进行了修改。
它有什么问题?
import android.graphics.drawable.Drawable;
import android.graphics.drawable.GradientDrawable;
import android.graphics.drawable.InsetDrawable;
import android.util.Log;
import com.android.systemui.qs.QSContainer;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.XposedHelpers;
public class Test2 {
private static QSContainer mQSContainer;
static final int mSystemUIPrimaryColor = ColorsUtils.primary;
public static void hook()
{
try
{
XposedHelpers.findAndHookMethod(QSContainer.class, "onFinishInflate", new XC_MethodHook()
{
@Override
protected void afterHookedMethod(MethodHookParam HookParm)
throws Throwable {
mQSContainer = (QSContainer) HookParm.thisObject;
Log.i(Test1.TAG,"First Hook, Test2");
SetUpBackground();
}
});
}
catch (Exception e)
{
XposedBridge.log(e);
}
}
public static void SetUpBackground()
{
Log.i(Test1.TAG, "SetUpBackground, Test2");
GradientDrawable localGradientDrawable = new GradientDrawable();
localGradientDrawable.setCornerRadius(2.0F);
localGradientDrawable.setColor(mSystemUIPrimaryColor);
Drawable localObject = new InsetDrawable(localGradientDrawable, 0, -2, 0, 0);
mQSContainer.setBackground(localObject);
//mQSContainer.setBackgroundColor(mSystemUIPrimaryColor);
}
}