首页 > 解决方案 > Android 11 - 访问私有存储中的文件

问题描述

应该可以访问私人存储。所以我对一个测试应用做了一个简单的测试。稍后我将迁移所有其他体面的应用程序。

我将一个文件从我的桌面放到 <phone>/Android/data/nl.xyz.myapp/files/example.json。

刚刚做了一个快速测试来访问数据:

File file = new File(MainActivity.mainActivity.getFilesDir(), "example.json");

从文件中读取给出了一个空字符串。哦?

使用 getFilesDir() 列出文件时,我看到那里只有一个 .Fabric 文件。我不记得把那样的文件放在那里;-)

如何通过从私有存储中的文件中读取数据来使这个简单的测试成功?

标签: androidandroid-11

解决方案


您的代码正在尝试从内部存储中读取。您的位置在外部存储上。

首先将您的代码替换为:

File file = new File(MainActivity.mainActivity.getExternalFilesDir(null), "example.json");

一旦你有这个工作,摆脱静态mainActivity字段MainActivity,这样你就摆脱了你的内存泄漏。


推荐阅读