【问题标题】:how do URIs with "file" scheme work in Android带有“文件”方案的 URI 如何在 Android 中工作
【发布时间】:2015-08-17 13:39:28
【问题描述】:

我知道在 Android 中我可以通过这种方式从磁盘读取文件:

Uri uri = Uri.parse("file:///data/data/com.example.mytest.mytest/test.txt");
InputStream stream = getContentResolver().openInputStream(uri);
int i;
while ((i = stream.read()) != -1) {
  Log.i("@@@", "znak: " + i);
}

但是,我不知道它是如何工作的。 Android 中是否存在一些使用“文件”方案的内容提供程序?但是如何 - 我认为所有内容提供者的 URI 方案都必须具有“内容”方案?

【问题讨论】:

标签: android android-contentprovider file-uri


【解决方案1】:

ContentResolveropenInputStream() 直接处理 file: 方案。这在the documentation for openInputStream() 中有介绍。

另外,不要对路径进行硬编码。您的Uri 在数百万台设备上都是错误的:

  • 在 Android 4.2+ 平板电脑和 Android 5.0+ 手机上,用于访客和其他辅助帐户

  • 在 Android M 设备上,如果用户“采用”可移动存储并将应用移至其中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-30
    • 2011-02-20
    • 2015-11-24
    • 2012-06-14
    • 2011-12-13
    • 2011-01-27
    • 1970-01-01
    相关资源
    最近更新 更多