Unity AR应用中无法通过PC查看Application.persistentDataPath存储的文件
问题分析
在Android 11及更高版本(包括Android 14)中,系统对应用私有目录(/storage/emulated/0/android/data/[包名])的访问权限做了严格限制,PC通过USB连接设备时默认无法直接查看该目录——即使文件已成功保存,这是系统安全机制导致的,并非代码问题。
解决方案
1. 使用ADB命令拉取文件
这是无需修改代码的直接调试方法:
- 确保PC已安装Android SDK Platform Tools,
adb命令可在终端/命令提示符中执行。 - 执行以下命令将文件拉取到PC本地:
注:adb pull /storage/emulated/0/android/data/com.XXXX/files/testFile.txt D:\YourLocalFolderApplication.persistentDataPath在Android平台的实际路径是/storage/emulated/0/android/data/[包名]/files,拉取时要对应这个完整路径。
2. 将文件保存到公共可访问目录
修改代码,把文件保存到系统公共目录(如Downloads),PC通过USB即可直接看到:
public class Save_Image_Test : MonoBehaviour { public TextMeshPro debugText; void Start() { SaveTextToPublicFolder("Hello, World!", "testFile.txt"); } public void SaveTextToPublicFolder(string textToSave, string fileName) { // 获取系统Downloads目录路径 string publicDownloadPath = Path.Combine(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath, "Download"); string fullPath = Path.Combine(publicDownloadPath, fileName); try { using (StreamWriter writer = new StreamWriter(fullPath, false)) { writer.WriteLine(textToSave); debugText.text = $"Successfully saved to {fullPath}"; } } catch (System.Exception ex) { debugText.text = $"Failed to save to {fullPath} with exception {ex}"; } } }
权限配置:
- 对于Android 12及以下,需在
AndroidManifest.xml中添加权限:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> - 对于Android 13+,需添加读取媒体权限(若需访问下载的文件),或请求
MANAGE_EXTERNAL_STORAGE权限(该权限需Google Play特殊审核,仅适用于特定场景)。
3. 通过Android Studio的Device File Explorer查看
打开Android Studio,连接设备后依次点击View > Tool Windows > Device File Explorer,导航到/storage/emulated/0/android/data/com.XXXX/files路径,即可直接查看、下载或删除应用私有目录下的文件。
内容的提问来源于stack exchange,提问作者Fabian H.
相关产品推荐
相关产品推荐

