如何使用 NativeActivity 写入内部存储文件系统?

发布于 2024-11-18 06:36:06 字数 384 浏览 2 评论 0原文

我正在将纯 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

吲‖鸣 2024-11-25 06:36:06

我终于找到了。结果内部存储目录的路径在 android/native_activity.h 中被声明为 ANativeActivity 的成员:

/**
 * Path to this application's internal data directory.
 */
const char* internalDataPath;

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:

/**
 * Path to this application's internal data directory.
 */
const char* internalDataPath;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文