3

Я портирую чистую игру на C++ на Android, и поскольку моя цель - Android 3.0+, я решил использовать NativeActivity, чтобы полностью избежать Java. Тем не менее, я не могу видеть никаких функций, которые позволяют мне писать во внутреннюю память устройства. Вызов функции fopen() завершится неудачно, так как я понятия не имею, какой каталог я должен писать, а внутренняя файловая система хранения недоступнаКак записать во внутреннюю файловую систему хранения с помощью NativeActivity?

Этот код обычно выполняет трюк на Java, предоставляя мне путь к внутреннему каталогу данных для записи для моего приложения:

mContext.getFilesDir(); 

Кто-нибудь знает альтернативу для C++? В противном случае мне придется вызвать фрагмент выше с помощью JNI.

Конечно, я просмотрел заголовки $ NDK /..../ include/android/, но я не вижу никаких методов для того, что мне нужно.

ответ

10

Я наконец нашел его. Оказывается, путь к внутренней директории хранения объявлена ​​в качестве члена ANativeActivity в андроида/native_activity.h:

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

Просто для справки: по-видимому, есть известная ошибка, где internalDataPath и externalDataPath не работают (являются всегда NULL) на прянике. –

+0

Вы используете NativeActivity, или старый добрый Java + JNI? Эти вары предназначены только для чистых родных приложений. –

+0

NativeActivity. –

Смежные вопросы