问题描述
我在使用libGDX读取android文件时遇到问题
我正在使用:
- 库GDX 1.9.11
- Android Studio 4.2
- Java 1.8.0_261
- Andoid Gradle 4.0.1
- 6.6级
- Android SDK 30-3
- Android 8.1 x86_64
首先,我已经在XML文件中实现了权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
第二,我要求用户允许访问存储:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
while (this.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)
this.requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},WRITE_REQUEST_CODE);
while (this.checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)
this.requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},READ_REQUEST_CODE);
}
((起初,我曾使用 while 来向用户询问他是否选择了拒绝,但这是行不通的,我没有选择不再询问,但对话框却没有再不会弹出)
它正常工作:https://i.stack.imgur.com/v57uG.png
public static boolean createFolder(String path) {
final FileHandle file = Gdx.files.local(path);
if (!file.exists()) {
file.mkdirs();
return true;
}
return false;
}
...
final FileHandle playerFile = Gdx.files.local("data/" + fileName + ".dat");
playerFile.writeString(content,false);
...
...
final FileHandle playerFile = Gdx.files.local("data/" + fileName + ".dat");
if (!playerFile.exists())
return null;
final Scanner reader = new Scanner(playerFile.file());
...
问题是无法读取/写入:
type=1400 audit(0.0:11): avc: denied { write } for comm=656374696F6E207072696D6172795D name="perfd" dev="dm-0" ino=7181 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:shell_data_file:s0 tclass=dir permissive=0
type=1400 audit(0.0:10): avc: denied { read } for name="u:object_r:serialno_prop:s0" dev="tmpfs" ino=4438 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:serialno_prop:s0 tclass=file permissive=0
我已经阅读了这个主题:Cant write nor read to/from external storage with LibGDX
但是我使用的是本地文件,所以我不知道它在哪里...
预先感谢您:)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)