[英]Android / Java - get TYPE of a hidden class via Reflection
我試圖通過反射使用隱藏的包管理器方法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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.