Android:如何写入Android/data/app.path/files目录
Android: How to write to the Android/data/app.path/files directory
所以我想将数据写入一个用户可以手动访问的位置的文件。目标是提供一个易于访问的崩溃日志,我可以发送该日志,而无需人们做完整的 logcat.
据我所知,我的应用程序可以写入内部存储文件系统的一个位置是 /storage/emulated/0/Android/data/my.app.package/files
。然而,我的目标是让这条路径尽可能独立于平台。
我可以使用 Environment.getExternalStorageDirectory()
得到 /storage/emulated/0
部分。我关心的是 Android/data/my.app.package/files 部分。我想避免硬编码路径以避免设备之间的差异。
那么有什么实用方法可以帮助我吗?我试过 Context.getFilesDir()
,但这只是给了我 /data/user/0/my.app.package
,没有 root 的用户无法访问它。
我主要使用的写作功能是
public static void writeStringAsFile(Context context, String fileContents, String fileName) {
try {
FileWriter out = new FileWriter(new File(Environment.getExternalStorageDirectory() + fileName));
out.write(fileContents);
out.close();
} catch (IOException e) {
}
}
并且包的路径如
String basePath = Environment.getExternalStorageDirectory().toString() + "/Android/data/" +
getPackageName().toString();
根据需要修改或组合它们。
PS:不要忘记许可:)
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
getExternalFilesDir
就是你要用的
https://developer.android.com/reference/android/content/Context.html#getExternalFilesDir(java.lang.String)
所以我想将数据写入一个用户可以手动访问的位置的文件。目标是提供一个易于访问的崩溃日志,我可以发送该日志,而无需人们做完整的 logcat.
据我所知,我的应用程序可以写入内部存储文件系统的一个位置是 /storage/emulated/0/Android/data/my.app.package/files
。然而,我的目标是让这条路径尽可能独立于平台。
我可以使用 Environment.getExternalStorageDirectory()
得到 /storage/emulated/0
部分。我关心的是 Android/data/my.app.package/files 部分。我想避免硬编码路径以避免设备之间的差异。
那么有什么实用方法可以帮助我吗?我试过 Context.getFilesDir()
,但这只是给了我 /data/user/0/my.app.package
,没有 root 的用户无法访问它。
我主要使用的写作功能是
public static void writeStringAsFile(Context context, String fileContents, String fileName) {
try {
FileWriter out = new FileWriter(new File(Environment.getExternalStorageDirectory() + fileName));
out.write(fileContents);
out.close();
} catch (IOException e) {
}
}
并且包的路径如
String basePath = Environment.getExternalStorageDirectory().toString() + "/Android/data/" +
getPackageName().toString();
根据需要修改或组合它们。 PS:不要忘记许可:)
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
getExternalFilesDir
就是你要用的
https://developer.android.com/reference/android/content/Context.html#getExternalFilesDir(java.lang.String)