簡體   English   中英

Android / Java-通過Reflection獲取隱藏類的TYPE

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM