看板 AndroidDev 關於我們 聯絡資訊
這幾天在寫一支讀取 arm 11 的sdcard內bin檔資料的程式 使用到android呼叫jni方式 因為想直接在lib.so內就把sdcard內的bin檔資料直接送給driver程式 因此便在jni函式內直接使用fread() 如以下 . . . FILE *input; unsigned char temp[50]; int bytes; JNIEXPORT jint JNICALL Java_com_android_demo_Linuxc_start(JNIEnv *env, jclass mc, jstring name){ input = fopen("/sdcard/xxx.bin", "rb"); bytes = fread(temp, sizeof(char), sizeof(temp), input); return bytes; } . . . 請問這樣呼叫會有問題嗎??因為發現都是在執行fread()這個函式時 app就會自己跳出程式,請問是什麼原因呢?? 可否幫忙小弟解答一下??感激不盡!!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.251.59.111
gpc:如果call這個JNI的人UID=1000 不能存取記憶卡 01/03 10:06
gpc:此為bionic的規定 01/03 10:06
sdyy:就算是jni code 還是要加讀寫sdcard權限喔 01/04 21:04
chk95:以解決囉,因為我傻傻的檔案名打錯了= = ,所以開啟失敗 01/04 23:01