我的应用程序在Play商店中正常运行,我注意到我在打电话时没有在询问权限
File savedImagesDirectory = getBaseContext.getExternalFilesDir("SavedImages");
if(savedImagesDirectory != null) {
if (!savedImagesDirectory.exists()) {
if (savedImagesDirectory.mkdir()) ; //directory is created;
}
}
奇怪的是,没有运行时权限的情况下,调用此方法不会崩溃。我在运行牛轧糖的设备上进行了测试,并创建了文件,但没有崩溃。
我仅在清单中具有权限,但我不询问运行时权限。
我在SO上看到了很多答案,说在外部文件目录中创建文件夹/文件时应询问运行时权限。
我的问题:
在调用上面的代码时,我应该询问运行时权限吗?如果是,为什么我没有崩溃?
如果有人可以提供一个链接以供我阅读,这也将很有帮助。
答案 0 :(得分:3)
尽管它返回到外部存储的路径,但您不需要访问def processthis(zipper):
for x, y in zipper:
# do something with x and y
返回的目录的权限。
它与getExternalFilesDir()
相同,但对其他应用也是公开的。
还请注意,如果您在该目录中写入任何内容并清除应用数据或卸载应用,则所有内容都会被删除。
上的文档答案 1 :(得分:-2)
String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
requestPermissions(permissions, WRITE_REQUEST_CODE);
使用此代码
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[]
grantResults) {
switch (requestCode) {
case WRITE_REQUEST_CODE:
if(grantResults[0] == PackageManager.PERMISSION_GRANTED){
//Granted.
}
else{
//Denied.
}
break;
}
}