我如何调用 Android hide Handler(boolean b) 构造函数?

how can i call Android hide Handler(boolean b) constructor?

android.os.Handler class 有一个隐藏构造函数 --> void Handler(boolean async),

我只是想通过反射来调用这个方法,但是没有成功...

这是我的代码:

    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.getConstructors() returns 构造函数数组,并记录它们的 ParamsType,只需找到 Looper、Callback ...

为什么无法登出'boolean'?

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

我通过在 android/sdk/platforms/android+versioncode/

中导入 framework.jar 而不是 android.jar 解决了这个问题

adk 砍掉了@hide api 和内部类 来生成android.jar,我们不能使用这些资源,除非我们使用framework.jar 来开发.

查看此项目,它提供了完整的 类,其中包括 @hide api 和内部 类。

android-hidden-api

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