1

我使用 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);
}

实际上,从这段代码中,我不知道当前上下文何时会拒绝某些文件操作并抛出 SecurityException(除了未在清单权限中声明的琐碎情况)。我想当应用程序尝试访问受保护的目录(如“root”或“date”)时也会抛出它。但还有什么时候?

4

1 回答 1

1

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

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

于 2013-01-17T14:41:00.280 回答