Jak zapisać dane tablicy bajtów do pliku .jpg w systemie Android przy użyciu JNI

Chcę przechowywać tablicę bajtów danych w pliku .jpg, używając JNI w systemie Android. Używam następującego kodu, zapisze dane tablicy bajtów, ale plik .jpg nie jest otwarty lub pokaże błąd podczas otwierania pliku w galerii telefonu.

Tutaj bmpArray: tablica bajtów ścieżka_pliku: katalog sdcard + nazwa_pliku

void Java_com_appsforbb_businesscardreader_ImageUtility_setNativeBitmapArray(JNIEnv* env, jclass object,jbyteArray bmpArray,jstring filePath)
{
    jbyte* bmp= env->GetByteArrayElements(bmpArray, 0);
    jsize length = env->GetArrayLength(bmpArray);
    jbyteArray arr = env->NewByteArray(length);
    const char* path = env->GetStringUTFChars(filePath, 0);
    FILE* file = fopen( path, "w+" );
    fwrite(bmpArray, 1, length, file );
    fflush(file);
    fclose(file);
    LOGI("Byte array stored..");
    }

tak mam rozwiązanie zastąpić parametr bmpArray w bmp

to znaczy

 void Java_com_appsforbb_businesscardreader_ImageUtility_setNativeBitmapArray(JNIEnv* env, jclass object,jbyteArray bmpArray,jstring filePath)
    {

       jbyte* bmp= env->GetByteArrayElements(bmpArray, 0);
       jsize length = env->GetArrayLength(bmpArray);
       const char* path = env->GetStringUTFChars(filePath, 0);
       FILE* file = fopen( path, "w+" );
       fwrite(bmp, 1, length, file );
       fflush(file);
       fclose(file);
       free(bmp);
       free(file);
       LOGI("---------->byte array stored..");

    }

questionAnswers(1)

yourAnswerToTheQuestion