3

我的应用程序的一部分涉及将 png 文件保存到我的本地文件目录,然后通过内容提供程序共享。

我通过写文件getContext().openFileOutput

但是,在我的内容提供程序中,ParcelFileDescriptor只会打开实际的 File 对象。因此,尝试通过使用 模拟出来的内容提供者来执行此操作ProviderTestCase2,以下代码不起作用:

return ParcelFileDescriptor.open(new File(getContext().getFilesDir(), filename), ParcelFileDescriptor.MODE_READ_ONLY)

这是因为在通过代码提供给提供者的模拟上下文中指向context.getFilesDir()。上面的代码导致异常,因为不计为目录。这是预期的吗?/dev/nullProviderTestCase2/dev/null

4

1 回答 1

0

这感觉就像一个笑话......文档说:

返回文件系统上存储使用 openFileOutput(String, int) 创建的文件的目录的绝对路径。

但是IsolatedContext来源是这样的:

@Override
public File getFilesDir() {
    return new File("/dev/null");
}

因此,我们最好忽略该方法并尝试使用

@Rule
public TemporaryFolder tempFolder = new TemporaryFolder();

在出测试。

于 2016-03-14T10:05:36.120 回答