我正在编写一个需要读取两个图像文件以用于各种目的的应用程序。
其中一个图像文件是通过意图过滤器接收的,我以这种方式打开它(注意:mIntent
是的结果getIntent()
):
mFileUri = (Uri) mIntent.getParcelableExtra(Intent.EXTRA_STREAM);
mInputStream = getContentResolver().openInputStream(mFileUri);
然后读取 mInputStream 按预期工作。
问题是读取第二个图像文件:它Uri
(使用 转换toString()
)写在共享首选项中,我获取值并使用Uri.parse()
它来恢复它,作为getString()
调用中的“默认值”参数我使用Uri
位于资产子目录(android.resource
方案)。我尝试阅读它的方式是相同的,使用getContentResolver().openInputStream()
,但是出了点问题:调用read()
返回的InputStream
总是 return -1
。我也试过,但不管用 an还是schemegetAssets().open()
都行不通。注意:对于我使用的意图接收文件,而对于我使用的第二个文件。android.resource
content
Uri
read(byte[])
read()
所以,这是我的问题:为什么会发生这种情况,我该如何解决这个问题?