使用Rust在Android Apps中写入文件

oknrviil  于 12个月前  发布在  Android
关注(0)|答案(1)|浏览(114)

我有一个用Rust编写的游戏,通过ADB使用cargo-apk apk run --target=armv7-linux-androideabi在我的Android手机上运行。这是一个简单的游戏,我不想创建一个完整的身份验证系统,所以我只是尝试使用本地.txt文件来存储用户ID。据我所知,写入应用的本地目录不需要任何特殊权限。
我一直在谷歌上疯狂搜索,但我还没有找到任何关于使用Rust写入Android文件系统的具体信息。
我得到一个错误Read-only file system (os error 30)

match std::fs::write("id.txt", "123456") {
    Ok(_) => { Log::warn("SUCCESS WRITING ID"); } 
    Err(e) => { Log::warn(format!("ERROR WRITING ID: {}", e)); }
}

字符串
Java/Kotlin apps中看起来很简单:

FileOutputStream fileout=openFileOutput("mytextfile.txt", MODE_PRIVATE);
OutputStreamWriter outputWriter=new OutputStreamWriter(fileout);
outputWriter.write(textmsg.getText().toString());
outputWriter.close();


编辑:Repository for reproducing

zpjtge22

zpjtge221#

必须使用完整的文件路径。此路径对我有效:/data/data/rust.executor_android/files/id.txt
感谢@blackapps,

  1. /data/data/<packagename>/files/id.txt
  2. /storage/emulated/0/Documents/id.txt
  3. /storage/emulated/0/Android/data/<packagename>/files/id.txt

相关问题