使用Android NDK将文件写入SD卡以外的位置?
除了在SD卡上写文件,还有其他方法吗 我在文件系统上尝试了许多不同的路径,但是fopen总是返回NULL,除了我在/sdcard/中写入/读取的任何文件 是否还有其他等同于:使用Android NDK将文件写入SD卡以外的位置?,android,android-ndk,java-native-interface,storage,Android,Android Ndk,Java Native Interface,Storage,除了在SD卡上写文件,还有其他方法吗 我在文件系统上尝试了许多不同的路径,但是fopen总是返回NULL,除了我在/sdcard/中写入/读取的任何文件 是否还有其他等同于: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 允许您在文件系统或其他地方进行写操作?您可以从应用程序中访问两个位置:SD卡和应用程序的特殊数据目录。任何其他地方都是禁止进入的,除非你有根访问权限 您始
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
允许您在文件系统或其他地方进行写操作?您可以从应用程序中访问两个位置:SD卡和应用程序的特殊数据目录。任何其他地方都是禁止进入的,除非你有根访问权限
data/data//files/
但是最好使用getFilesDir()
来
确保将来的文件路径有效
android的版本变更<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
编辑: 在第一次使用C之前,您可能需要手动创建/文件:
int result\u code=mkdir(“/data/data/com.app/files/”,0770)
干杯 “特殊数据目录”的位置在哪里?因为我认为不是所有的手机都有SD卡。。。因此,使用/sdcard/dir。这是不可靠的。您可以使用以下命令询问操作系统目录在Java中的位置:mContext.getFilesDir();mContext.getExternalFilesDir(null);由于设备的内部存储可能有限,您应该选择外部存储来存储大型对象。我有根用户访问该设备的权限。你能解释一下我如何访问文件系统吗。尝试在系统中打开文件对我不起作用。请检查此链接中回答的问题:上一个代码示例中包含哪些标志
0770
<代码>mkdir(“/data/data/com.app/databases”,S|IRWXU | S|IRWXG | S|u IWOTH | S|IXOTH)代码>对我不起作用:(
//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);
}