带有“文件”方案的URI如何在Android中运行

时间:2015-06-03 11:14:15

标签: android android-contentprovider

我知道在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方案都必须有“内容”方案?

1 个答案:

答案 0 :(得分:2)

ContentResolveropenInputStream()直接处理file:个计划。这包含在the documentation for openInputStream()

此外,不要硬编码路径。您的Uri在数百万台设备上出错:

    适用于访客和其他二级帐户的Android 4.2+平板电脑和Android 5.0+手机上的
  • 在Android M设备上
  • ,如果用户"采用"可移动存储并将应用程序移动到它