gpt4 book ai didi

android - 在 Android 上的何处创建可公开访问的日志文件

转载 作者:行者123 更新时间:2023-11-28 05:29:52 25 4
gpt4 key购买 nike

我们的应用程序包含大量 C++ 代码,这些代码将自己的日志文件创建为一个简单的 .txt 文件。它是一个循环缓冲区,所以它的大小限制在我们指定的范围内。它也放置在我们指定的任何目录中。

问题是将文件放在哪里,以便可以使用 ADB 或类似工具(无需生根)访问它。如果我们不关心可公开访问的部分,那么这似乎是找到文件的合理位置:

packageManager.getApplicationInfo(applicationContext.getPackageName().dataDir

但由于我们希望能够从客户的手机中提取文件以进行事后调试,所以我尝试将其放在此处:

"/mnt/sdcard/Android/data"

由于多种原因,这是有问题的,但我不确定它们是否都是真的。 (1) 硬编码; (2) 并不是所有的安卓设备都有外部存储,虽然我认为他们仍然将其映射到内部存储? (3) 该位置不是特定于应用程序的,因此不会随应用程序一起卸载。并且 (4) 需要 EXTERNAL_STORAGE 的运行时权限。

我相信 1-3 可以用类似的方法解决:

android.content.Context.getExternalFilesDir()

或者有更好的选择吗?

但我认为这不会绕过 #4,这很不幸,因为我不想用更多的权限请求来“吓唬”用户。

处理此问题的最佳方法是什么?

最佳答案

确保您有权使用 list 文件中的以下代码读取和写入外部 SD:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

然后这个字符串会给你想要的路径:

String directory = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Android/data/" + getContext().getPackageName();

/storage/emulated/0/Android/data/com.exemple.yourapp/

关于android - 在 Android 上的何处创建可公开访问的日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39777092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com