Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在运行时获取android权限的详尽列表?_Java_Android_Reflection - Fatal编程技术网

Java 如何在运行时获取android权限的详尽列表?

Java 如何在运行时获取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项目中对我有效,而且我认为这样做也有点整

我正在尝试使用Java反射获取公共最终类Manifest.permission中可用的所有可能权限的详尽列表

Class permission=Class.forName(“android.Manifest.permission”)

但是,获取ClassNotFoundException


有人能告诉我哪里出了问题吗?

你为什么不这样做:
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为什么不工作?