关于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>