Java 如何在运行时获取android权限的详尽列表?
我正在尝试使用Java反射获取公共最终类Manifest.permission中可用的所有可能权限的详尽列表 Class permission=Class.forName(“android.Manifest.permission”) 但是,获取ClassNotFoundExceptionJava 如何在运行时获取android权限的详尽列表?,java,android,reflection,Java,Android,Reflection,我正在尝试使用Java反射获取公共最终类Manifest.permission中可用的所有可能权限的详尽列表 Class permission=Class.forName(“android.Manifest.permission”) 但是,获取ClassNotFoundException 有人能告诉我哪里出了问题吗?你为什么不这样做: Class-permission=android.Manifest.permission.Class它在我的android项目中对我有效,而且我认为这样做也有点整
有人能告诉我哪里出了问题吗?你为什么不这样做:
Class-permission=android.Manifest.permission.Class
它在我的android项目中对我有效,而且我认为这样做也有点整洁。您将在编译时得到错误(如果有),而不是运行时,这也是一个好处
编辑您的方法不起作用的原因:android.Manifest.permission
类属于不同的类加载器。我做了以下实验:
Log.i("Tag", "" + android.Manifest.permission.class.getClassLoader());
Log.i("Tag", "" + this.getClass().getClassLoader());
结果是:
INFO/Tag(281): java.lang.BootClassLoader@4001bde0
INFO/Tag(281): dalvik.system.PathClassLoader[/data/app/com.company.android-2.apk]
一旦这两个类具有不同的类加载器,
class.forName
将不会返回另一个类的类。谢谢Boris…工作得很有魅力,但仍然想知道class.forName为什么不工作?