3

我將一個純粹的C++遊戲移植到Android上,由於我的目標是Android 3.0+平板電腦,我選擇使用NativeActivity來完全避免Java。但是,我無法看到允許我寫入設備內部存儲的任何功能。調用fopen()會失敗,因爲我不知道我應該寫哪個目錄,並且內部存儲文件系統不可訪問如何使用NativeActivity寫入內部存儲文件系統?

這段代碼通常在Java上做竅門,給了我內部可寫數據目錄的路徑對於我的應用程序:

mContext.getFilesDir(); 

有沒有人知道C++的替代方案?否則,我將不得不用JNI調用上面的代碼片段。

當然,我已經查看了$ NDK /..../ include/android/標題,但是我看不到任何需要的候選方法。

回答

10

我終於找到它了。原來的路徑,內部存儲目錄聲明爲的Android/native_activity.h一個ANativeActivity的成員:

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

僅供參考:顯然有一個已知的bug,其中internalDataPath和externalDataPath不工作(是始終爲空)薑餅。 –

+0

您是使用NativeActivity還是Java + JNI?這些變量只適用於純粹的本地應用程序。 –

+0

NativeActivity。 –