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