【问题标题】:Android: Provider Test Case 2 and getFilesDir()Android:提供者测试用例 2 和 getFilesDir()
【发布时间】:2012-12-10 07:14:56
【问题描述】:

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

我通过getContext().openFileOutput写文件

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

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

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

【问题讨论】:

    标签: android android-contentprovider


    【解决方案1】:

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

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

    但是IsolatedContext的来源是这样的:

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

    所以我们最好忽略该方法并尝试使用

    @Rule
    public TemporaryFolder tempFolder = new TemporaryFolder();
    

    进出测试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-16
      • 2010-11-16
      • 1970-01-01
      相关资源
      最近更新 更多