如何使用 NativeActivity 写入内部存储文件系统?
我正在将纯 C++ 游戏移植到 Android,由于我的目标是 Android 3.0+ 平板电脑,因此我选择使用 NativeActivity 以完全避免使用 Java。但是,我看不到任何允许我写入设备内部存储的功能。对 fopen() 的调用将失败,因为我不知道应该写入哪个目录,并且内部存储文件系统无法访问
此代码通常在 Java 上实现这一点,为我的应用程序提供了内部可写数据目录的路径:
mContext.getFilesDir();
有人知道 C++ 的替代品吗?否则我将不得不使用 JNI 调用上面的代码片段。
当然,我已经研究了 $NDK/..../include/android/ 标头,但我没有看到我需要的候选方法。
I'm porting a pure C++ game over to Android, and since my target is Android 3.0+ tablets, I opted to use NativeActivity in order to avoid Java completely. However, I am not able to see any functionality that lets me write to the device's internal storage. Calls to fopen() will fail as I have no idea which directory I am supposed to write and the internal storage filesystem is not accessible
This code usually does the trick on Java, giving me the path to the internal writable data directory for my app:
mContext.getFilesDir();
Does anybody know an alternative for C++? Otherwise I'll have to call the snippet above with JNI.
Of course, I have looked into the $NDK/..../include/android/ headers but I see no candidate methods for what I need.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我终于找到了。结果内部存储目录的路径在 android/native_activity.h 中被声明为 ANativeActivity 的成员:
I finally found it. Turns out the path to the internal storage directory is declared as a member of ANativeActivity in android/native_activity.h: