gpt4 book ai didi

java - Android/Java - 通过反射获取隐藏类的类型

转载 作者:行者123 更新时间:2023-12-02 10:58:22 27 4
gpt4 key购买 nike

我正在尝试通过反射使用隐藏的包管理器方法installPackage

我的主要问题是它的参数之一是另一个隐藏类android.content.pm.IPackageInstallObserver。我如何获取该类的TYPE(不是它的实例)?

val cPackageManager = Class.forName("android.content.pm.PackageManager")
val cPackageInstallObserver = Class.forName("android.content.pm.IPackageInstallObserver")

// here I need the IPackageInstallObserver type as a parameter type to look up the method
val installPackageMethod = cPackageManager.getMethod("installPackage", Uri::class.java, cPackageInstallObserver::class.java, Integer.TYPE, String::class.java)

按照上面的方式,cPackageInstallObserver::class.java仅解析为Class,而不是我需要的实际类型。

有人有解决办法吗?

最佳答案

你刚刚在这里犯了一个简单的错误

Uri::class.java, cPackageInstallObserver, Integer.TYPE, String::class.java)

由于 cPackageInstallObserver 已经是您需要的类,因为 Class.forName 返回 Class 类型,但您使用了 cPackageInstallObserver: :class.java 所以它和java中的String.class.getClass()一样,所以只是Class.class

关于java - Android/Java - 通过反射获取隐藏类的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51544413/

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