向我的清单文件添加权限时,以下xml可以正常工作.
但是,这个xml不起作用.
我应该使用哪一个?如果是第一个,为什么它不起作用?我该如何解决?
此外,我得到一个Android 6.0运行时权限相关的异常:
java.lang.SecurityException: "gps" location provider requires ACCESS_FINE_LOCATION permission.
当我尝试将权限添加到String数组以检查权限时,Android Studio告诉我它无法Manifest.permission
在以下代码中解析:
new String[]{Manifest.permission.ACCESS_FINE_LOCATION}
为什么要这样做?我该如何解决?
对于第一部分,您应该
根据Android Devlopers网站使用.请确保直接在
代码下声明您的权限,而不是在
代码中.如果没有看到整个清单文件,很难知道你的问题是什么.查看我上面发布的链接,了解有关如何在清单中声明权限的更多信息.
关于运行时权限问题:
使用权限无法解析..
new String [] {Manifest.permission.ACCESS_FINE_LOCATION}
为什么?
确保你使用android.Manifest
而不是my.app.package.Manifest
.Android Studio很多时候会默认使用后者而不是前者.
因此,您的新代码行如下所示:
new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION};
编辑:我重新格式化了我的答案.
编辑2:警惕导入android.Manifest
.如果您还要导入,则可能会导致问题my.app.package.Manifest
.除此之外import android.Manifest
是解决此问题的另一种有效方法.
改变这一点
Manifest.permission.ACCESS_FINE_LOCATION
进入这个
android.Manifest.permission.ACCESS_FINE_LOCATION
试试这个!由于ACCESS_FINE_LOCATION可在以下包中使用,因此添加:
import android.Manifest;
我在使用时遇到了类似的问题;
ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED
无法解析符号的地方READ_CONTACTS
。
但是在使用时;
import android.Manifest;
它开始认识到 READ_CONTACT