在哪些情况下,在Android上的文件操作上抛出SecurityException?

时间:2013-01-17 14:34:02

标签: android file securityexception

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

我查看android源码并找到以下内容: 不同的文件方法执行这样的调用

 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(除了在manifest权限中没有声明的琐碎情况)。 我猜它也会在app尝试访问受保护的目录时抛出,例如“root”或“date”。但是什么时候呢?

1 个答案:

答案 0 :(得分:1)

SecurityExceptions适用于您尝试执行您的应用无权执行的操作时。即在没有清单中列出的WRITE_EXTERNAL权限的情况下写入SD卡。

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