我的部分应用程序涉及将png文件保存到本地文件目录,然后通过内容提供商共享。
我通过getContext().openFileOutput
但是,在我的内容提供商中,ParcelFileDescriptor
只会打开实际的File对象。因此,尝试通过使用ProviderTestCase2
的模拟内容提供程序执行此操作,以下代码不起作用:
return ParcelFileDescriptor.open(new File(getContext().getFilesDir(), filename), ParcelFileDescriptor.MODE_READ_ONLY)
这是因为context.getFilesDir()
在通过/dev/null
代码提供给提供者的模拟上下文中指向ProviderTestCase2
。上面的代码导致异常,因为/dev/null
不算作目录。这是按预期的吗?
答案 0 :(得分:0)
这听起来像个笑话......文档说:
返回文件系统上目录的绝对路径,其中存储使用openFileOutput(String,int)创建的文件。
但IsolatedContext源是这样的:
@Override
public File getFilesDir() {
return new File("/dev/null");
}
因此我们最好忽略该方法并尝试使用
@Rule
public TemporaryFolder tempFolder = new TemporaryFolder();
在测试中。