如何调用Android隐藏处理程序(boolean b)构造函数



android.os.Handler类有一个隐藏构造函数-->void Handler(布尔异步(,

我只是想通过反思来调用这种方法,但徒劳。。。

这是我的代码:

    Class clazz = Class.forName("android.os.Handler");
    Constructor construct = clazz.getConstructor(boolean.class);
    //Constructor construct = clazz.getDeclaredConstructor(boolean.class);
    construct.setAccessible(true);
    boolean[] ailments = new boolean[]{true};
    Handler handler = (Handler) construct.newInstance(ailments);

错误消息是:

java.lang.NoSuchMethodException: android.os.Handler.<init>(boolean)
at java.lang.Class.getConstructor0(Class.java:3082)
at java.lang.Class.getConstructor(Class.java:1825)....

我尝试迭代clazz.getConstructor((返回Constructor数组,并记录它们的ParamsType,只需找到Looper、Callback。。。

为什么它不能注销"boolean"?

public More ...Handler(boolean async) {
    this(null, async);
}

我已经通过在android/sdk/platforms/android+版本代码/中导入framework.jar而不是android.jar来解决这个问题

adk已经减少了@hideapi和内部类来生成android.jar,除非我们使用framework.jar进行开发,否则我们无法使用这些资源。

在这个项目中,它提供了完整的类,其中包括@hideapi和内部类。

安卓隐藏api

我认为您只需要调用construct.newInstance(true),而不是将布尔值作为数组传递

相关内容

  • 没有找到相关文章

最新更新