Libgdx 如何停止在 Android 上将文件保存到 /storage/emulated/0/
Libgdx how to stop files being saved to /storage/emulated/0/ on Android
我正在做一个 libgdx 项目,我无法让我的保存功能正常工作。
String levelstr = String.valueOf(levelNum);
FileHandle publicFile = Gdx.files.external("SkippyRocketMaps/level"+levelstr+".tmx");
String tmap = "a lot of data";
publicFile.writeString(tmap, false);
此代码会覆盖该位置的文件,但当我尝试创建新文件时它不会。
对于新文件,它似乎将其保存到我无法访问的“/storage/emulated/0/SkippyRocketMaps/level”+levelstr+”.tmx”中。我需要能够通过 USB 连接从我的计算机查看和编辑文件。
我的 android 清单还包括
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
我的 Android 启动器包括
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (this.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED || this.checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
//the read request isn't showing up
this.requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 201); //WRITE_REQUEST_CODE
//this.requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 200); //READ_REQUEST_CODE
//this.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, REQUESTP);
}
if (this.checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
this.requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 200); //WRITE_REQUEST_CODE
}
}
编辑:经过一些研究,我认为 /storage/emulated/0/ 文件夹应该将其自身复制到我可以访问的文件夹中。我认为问题可能出在 phone 本身,而不是我的代码。我还发现了另一个细微差别,当我覆盖旧文件时,它有时会起作用。有时,如果我向文件中添加更多数据,它不会保存所有新数据。它似乎在一定长度后切断文本。这让我觉得 phone 没有为文件分配足够的 space。希望我能尽快获得新的 phone,这样我就可以查看我的 phone 是否有问题。
好吧,我找到了我自己问题的答案。 /storage/emulated/0/ 文件夹应该将其自身复制到我可以访问的文件夹中。我的旧 phone 有问题,没有正确复制它。我得到了一个新的 phone,我的保存功能现在可以正常工作了。
我正在做一个 libgdx 项目,我无法让我的保存功能正常工作。
String levelstr = String.valueOf(levelNum);
FileHandle publicFile = Gdx.files.external("SkippyRocketMaps/level"+levelstr+".tmx");
String tmap = "a lot of data";
publicFile.writeString(tmap, false);
此代码会覆盖该位置的文件,但当我尝试创建新文件时它不会。 对于新文件,它似乎将其保存到我无法访问的“/storage/emulated/0/SkippyRocketMaps/level”+levelstr+”.tmx”中。我需要能够通过 USB 连接从我的计算机查看和编辑文件。 我的 android 清单还包括
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
我的 Android 启动器包括
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (this.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED || this.checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
//the read request isn't showing up
this.requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 201); //WRITE_REQUEST_CODE
//this.requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 200); //READ_REQUEST_CODE
//this.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, REQUESTP);
}
if (this.checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
this.requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 200); //WRITE_REQUEST_CODE
}
}
编辑:经过一些研究,我认为 /storage/emulated/0/ 文件夹应该将其自身复制到我可以访问的文件夹中。我认为问题可能出在 phone 本身,而不是我的代码。我还发现了另一个细微差别,当我覆盖旧文件时,它有时会起作用。有时,如果我向文件中添加更多数据,它不会保存所有新数据。它似乎在一定长度后切断文本。这让我觉得 phone 没有为文件分配足够的 space。希望我能尽快获得新的 phone,这样我就可以查看我的 phone 是否有问题。
好吧,我找到了我自己问题的答案。 /storage/emulated/0/ 文件夹应该将其自身复制到我可以访问的文件夹中。我的旧 phone 有问题,没有正确复制它。我得到了一个新的 phone,我的保存功能现在可以正常工作了。