我使用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(除了在manifest权限中未声明的琐碎情况)。我猜它也抛出当应用程序试图访问受保护的目录,如"根"或"日期"。还有什么时候呢?
securityexception用于当你试图做一些你的应用程序没有权限做的事情时。例如,在没有WRITE_EXTERNAL许可的情况下写入SD卡。
据我所知,manifest中缺乏权限是引发SecurityException的唯一方法。然而,值得注意的是,任何时候处理文件i/o也有可能出现其他异常,如IOException。