关于Unity的Android工程,写文件的问题

Unity Android工程中的写文件
在安卓工程下,写入文件可以直接用:File.WriteAllText(UnityEngine.Application.persistentDataPath+"/XXX.txt","文件内容");
路径前面没有加“file://”也不会报错,或许也要看Android版本,我测试的环境下没有报错(虚拟机下测试的)
 
如果想把文件写道SD的根目录呢?改为:File.WriteAllText("./XXX.txt","文件内容"); //会报错,提示拒绝访问
或者改为:File.WriteAllText("/storage/emulated/0/XXX.txt","文件内容");//会报错,提示拒绝访问
其实就是程序的权限不足,只能在本程序的 UnityEngine.Application.persistentDataPath路径下可读可写。
 
接下来在Unity编辑器中稍作修改后,重新打包就可以写入了。

 

 操作步骤:File -> Build Settings -> Player Settings -> Other Settings,把Write Permssion的值改成External (SDCard)

也有其他博主通过到 Plugins/Android/AndroidManifest.xml中添加以下权限,不过我创建的工程并没有自动生成这个配置文件

 

 配置文件的修改内容为:

<!-- SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

如果Android的版本很高的话,10+

<!-- AndroidManifest.xml中 -->
<application android:requestLegacyExternalStorage="true" /application>

 

posted @ 2023-01-10 16:04  showonce  阅读(845)  评论(0编辑  收藏  举报