Android:在没有外部存储空间的情况下读取文件

时间:2016-05-09 11:52:36

标签: android

我不希望我的应用需要任何权限,但我希望用户能够选择要阅读的文件。我的应用程序不需要任意访问文件系统。但是,到目前为止我研究过的所有openfiledialog实现似乎都有权访问外部存储。

我能想到的一个解决方法是将我的应用配置为打开某种类型文件的应用列表。我没试过这个,但我希望这可以在未经许可的情况下访问外部存储。但是,在这种情况下,用户指导将不那么理想。我更喜欢带有对话框的解决方案,让用户选择文件。

我认为此要求不会破坏安全性,因为用户可以完全控制我的应用可以读取的文件。这有可能吗?

1 个答案:

答案 0 :(得分:4)

  

但是,到目前为止我研究过的所有openfiledialog实现似乎都有权访问外部存储。

minSdkVersion设置为19,然后使用ACTION_OPEN_DOCUMENTthe Storage Access Framework的一部分。

或者,如果您需要minSdKVersion低于19,use ACTION_GET_CONTENT旧设备。

您将通过Uri返回onActivityResult()。使用ContentResolveropenInputStream()consume the content identified by that Uri等方法。

  

我还没试过这个,但我希望这可以在未经许可的情况下使用外部存储空间

仅当您排除file: Uri值时。例如,只支持<intent-filter> content:值的Uri可以使用。