Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android中的文件权限_Java_Android_Permissions - Fatal编程技术网

Java Android中的文件权限

Java Android中的文件权限,java,android,permissions,Java,Android,Permissions,我来这里只是想问一些可能非常简单的问题,我正在处理文件,FileOutputStream和FileInputStream,但我只想从文件中获取/设置一些道具,我的意思是,文件的所有者,读/写权限,等等 环顾四周,我发现了类FileDescriptor和FilePermission,但我不知道我可以使用它们,所以我请求一些帮助;实际上,我正在使用类文件中的方法setReadOnly(),但这正是我现在要寻找的。Android使用标准Java API来处理文件和文件权限 基本上,您只需获取文件的对象

我来这里只是想问一些可能非常简单的问题,我正在处理文件,FileOutputStreamFileInputStream,但我只想从文件中获取/设置一些道具,我的意思是,文件的所有者,读/写权限,等等


环顾四周,我发现了类FileDescriptorFilePermission,但我不知道我可以使用它们,所以我请求一些帮助;实际上,我正在使用类文件中的方法setReadOnly(),但这正是我现在要寻找的。

Android使用标准Java API来处理文件和文件权限


基本上,您只需获取文件的对象,然后使用newPermissionCollection()方法从FilePermission对象获取,然后向该集合添加或从该集合中移除项。

这里有几个问题:

  • 默认情况下,应用程序可以不受限制地访问自己的文件(读/写/删除/“执行”…无论执行的方式如何),但不能访问任何其他应用程序的文件
  • Android使得除了通过意图之外,很难与其他应用程序及其数据交互。意图不适用于权限,因为您依赖于接收意图的应用程序来执行/提供您想要的内容;他们可能不是为了告诉任何人他们的文件权限而设计的。有很多解决方法,但只有当应用程序被设计为在同一个JVM中运行时(即,您设计为在同一个JVM中一起运行的应用程序)
  • 您的应用程序可以为自己的文件获取和设置权限,但不能为其他任何人这样做。据我所知,SDK中没有明确的所有权概念,因此您无法找到文件的所有者


    Android基于Linux内核,但它不是Linux。它已经针对在移动设备上运行进行了大量优化。如果您有一台应用程序只能在自己的沙箱中运行的机器,那么您可以删除权限和所有权等内容,从而获得更小、更快的操作系统。您的文件仅有的权限是您对其放置(并强制)的权限。其他应用程序的文件不存在。

    好吧……如果你只想查看权限,你就不能使用“ls-l”吗?

    嗨,DrJokepu,谢谢你的帮助,我正在阅读关于FilePermission类的文章,但它的作用是从java向文件系统授予权限;但我真正需要的是查看文件中权限的状态,即从文件系统到java。再次感谢您是的,您可以从本机代码使用相同的底层文件系统操作,尽管某些目录可能没有必要的权限允许“其他”用户ID生成列表。