Как записать данные байтового массива в файл .jpg в Android с помощью JNI

Я хочу сохранить массив байтов данных в файл .jpg с помощью JNI в Android. Я использую следующий код, он будет хранить данные байтового массива, но файл .jpg не открыт или будет отображаться ошибка при открытии файла в телефонной галерее.

Здесь bmpArray: байтовый массив filePath: каталог sdcard + имя файла

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..");
    }

да, я получил решение заменить параметр bmpArray в bmp

т.е.

 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..");

    }

Ответы на вопрос(1)

Ваш ответ на вопрос