如何使用Android限制的API方法¿反射?

时间:2014-10-21 00:50:03

标签: android reflection android-package-managers

我开发的应用程序具有系统权限,我想使用intallPackage()和deletePackage()方法,这些方法在常规API中不可见。我不知道如何使用反射来使这些方法可用。有人知道如何从代码中访问此方法?在Android SDK上提供这些步骤的步骤是什么?有关它的任何教程吗?

1 个答案:

答案 0 :(得分:2)

如你所知,可以用反射来完成。为了避免SDK中的任何更改导致问题,在调用它们之前首先验证这些方法是个好主意,以确保它们存在并具有正确的方法签名。

如果您获取Android源代码,您应该能够找到所有隐藏的方法,它们会标有@hide注释。

修改

这是一个(不完整的)示例,以编程方式启用访问点,它应该为您提供一些线索:

WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
Method method = wifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class);
method.invoke(wifiManager, config, true);

基本上,获取Method并调用它。