通过类加载器加载android.widget.AppSecurityPermissions程序权限信息
当然也可以加载其他方法,详情可以参考Android源代码
根据类加载器得到相应类的构造方法,由于方法里可能有多个构造函数
故返回的是一个构造函数数组,之后通过newInstance方式获取构造方法的实例对象,
通过类加载得到xxx为名的方法,执行后返回view或其他对象
例如:获取系统中应用设置详细信息权限功能
private void getAddView(){
try {
Class clazz = Class.forName("android.widget.AppSecurityPermissions");
Constructor[] constructors = clazz.getConstructors();
Constructor c = constructors[1];
Object obj = c.newInstance(new Object[]{this,appPackname});
Method method = clazz.getMethod("getPermissionsView", null);
View view = (View) method.invoke(obj, null);
Log.i("i",appPackname);
permiShow.addView(view);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
}