>您可以随时访问目录
您的应用程序在其中.
这个目录通常是:
数据/数据/< Your_package_name_usually
com.android.appName> /文件/< your_filename>
但是更好地使用getFilesDir()
确保有效的文件路径与未来
android的版本更改.
>如果你想使用外部存储
相反,请确保你放这个
你的应用程序清单中的代码行
获得许可.
然后使用sdcard目录:
getExternalStorageDirectory();
//通常:/ sdcard /< your_filename>
>否则,您可以根设备
并获得整体访问权限
文件系统.但你必须要
请求您的所有应用用户获取
之前他们的设备的根访问
使用你的应用程序有些游戏
用这种做事的方式,但我
不会推荐它.如果还是
想做这个,查找超级用户
应用程序的Android,它是免费的
值得信赖的.
一旦你有了android目录,只需创建一个接收jstring参数的JNI本机方法,然后在本地代码中设置它.将其转换为std :: string,您将可以使用fopen()来使用它.
//Inside your java activity
File f = this.getApplicationContext().getFilesDir();
LibLoader.setupArchiveDir(f.toString());
//Inside your JNI wrapper
JNIEXPORT bool JNICALL Java_com_android_appName_LibLoader_setupArchiveDir(JNIEnv * env, jobject obj, jstring dir)
{
const char* temp = env->GetStringUTFChars(dir, NULL);
std::string stringDir(temp);
// Will be receive as a std::string inside C++ code
MyNativeObjectInC++->SetupArchiveDir(stringDir);
}
编辑:
在第一次使用它之前,您可能需要手动创建C中的/文件:
int result_code = mkdir(“/ data / data / com.app / files /”,0770)
干杯!