Android - 从文件管理器应用程序访问应用程序私有文件夹 getFilesDir() 路径

问题描述 投票:0回答:2

我需要访问我的应用程序的私有文件夹以进行调试。 我用

myActivity.getFilesDir()
处理私有文件夹,但使用文件管理器时我无法在文件系统中看到它。

之前,我使用

Environment.getExternalStorageDirectory()
,我可以在
com.myDomain.app
目录中看到
Android/data
文件夹,并且我能够打开它并检查私有文件进行调试。

现在,我如何访问

getFilesDir()
文件管理器中的文件夹?

android debugging storage
2个回答
1
投票

我过去看到在

/Android/data
路径中创建的目录是通过
getExternalFilesDir(null)
方法调用找到的。

我看到了一个带有 null 参数的示例,它对我有用。

出于调试目的,我将代码文件中的所有

getFilesDir()
实例替换为
getExternalFilesDir(null)

该文件夹已正确创建并可访问:

/Android/data/com.mydomain.app

所有其他应用程序都在使用该文件夹,即使用户可以访问该文件夹。

我不知道我最终会使用该文件夹还是隐藏的(目前看来)文件夹。


0
投票

您正在运行 Android 安全系统。应用程序的私有文件只能由应用程序本身访问。你只有几个选择:

  1. 向您的应用程序添加一些代码,以便您查看、转储或复制私有文件。我通常使此类代码依赖于 DEBUG 构建,这样我就不会意外地将其发布到生产环境中。
  2. 将存储移至公共位置。我通常不喜欢这样做,因为您必须在测试和生产之间更改代码,这存在出错的风险。
  3. 将文件保存到 SD 卡上,然后在设备外部访问它,这样您就不会受到 Android 限制。
  4. root手机,这样你就可以绕过正常的限制。

如果您编写一些简单的代码将所有私有文件复制到公共位置,那么您可以编写生产代码,但通过调试版本,您可以让它对文件进行快照以进行调试。

希望有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.