我使用File.java类。
它的大多数方法都可以抛出SecurityException。但是我找不到有关抛出的案例的任何信息。

我在android来源中查找以下内容:
不同的File方法执行此类调用

 SecurityManager security = System.getSecurityManager();
    if (security != null) {
        security.e(path);
    }


或checkWrite()/ checkDelete()
在所有这些情况下,SecurityManager都会创建FilePermission对象并在Context.checkPermission()中对其进行验证。

public void checkRead(String file, Object context) {
    checkPermission(new FilePermission(file, "read"), context);
}


实际上,从这段代码中,我无法确定何时对当前Context进行某些文件操作会拒绝并抛出SecurityException(除了在清单权限中未声明的琐碎情况外)。
我猜想,当应用尝试访问受保护的目录(例如“ root”或“ date”)时,也会引发该错误。但是什么时候呢?

最佳答案

SecurityException是当您尝试执行您的应用没有权限执行的操作时。即未经清单中列出的WRITE_EXTERNAL权限写入SD卡。

据我所知,清单中缺少权限是引发SecurityException的唯一方法。但是,可能值得注意的是,无论何时您在处理文件I / O时,都可能存在其他异常,例如IOException。

07-25 22:07