【问题标题】:In which cases SecurityException thrown on file operations on android?在哪些情况下,Android 上的文件操作会引发 SecurityException?
【发布时间】:2013-01-17 14:34:02
【问题描述】:

我使用 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”)时也会抛出它。但其他时候呢?

【问题讨论】:

    标签: android file securityexception


    【解决方案1】:

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

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

    【讨论】:

    • IOException - 是众所周知的老敌人 )) ... 与 SecurityException 不同。
    • SecurityException 我相信只有当您的应用在清单中缺少权限时才会引发。
    猜你喜欢
    • 1970-01-01
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    • 2017-08-30
    • 2016-01-08
    • 1970-01-01
    相关资源
    最近更新 更多