GetFilesDir() из NDK?

Есть ли способ заставить каталог приложения сохранять личные данные в файл для моего приложения непосредственно из NDK? Другими словами, мне нужен эквивалент функции Java mContext.getFilesDir().

Я отметил, что другие сообщения, такие как этот: Android NDK Write File

укажите, что является "обычным" местом для этого каталога. Но для того, чтобы это было правильно во всех версиях и во всех устройствах, обязательно необходим эквивалентный системный вызов.

В настоящее время я использую NativeActivity и вообще не Java.

Спасибо за ваше время.

Ответ 1

Если вы используете NativeActivity, то у вас есть доступ из собственного кода к экземпляру ANativeActivity (см. <ndk_root>/platforms/android-9/arch-arm/usr/include/android/native_activity.h), который имеет члены internalDataPath и externalDataPath.

Ответ 2

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

  1. Прочитайте /proc/self/cmdline или /proc/**MyPID**/cmdline
  2. Добавить результаты от # 1 к /data/data/

Пример результатов:

/data/data/com.yourcompany.yourproduct/