Hi guys,
I noticed that writing to a file on a USB OTG device, the data is written
with a delay of about one second.
This is probably due to caching of java virtual machine or Dalvik virtual
machine?. Can I write without delay directly?
I tried with NDK and a piece of code in C:
jstring Java_it_prb_hcstarterkit_MainActivity_stringFromJNI(JNIEnv* env,
jobject obj, jbyteArray array) {
jbyte* bufferPtr = (*env)->GetByteArrayElements(env, array, NULL);
jsize lengthOfArray = (*env)->GetArrayLength(env, array);
jstring retString;
FILE* file = fopen("/storage/usbdisk/binaryData.bin", "rw");
if(file == NULL) {
(*env)->ReleaseByteArrayElements(env, array, bufferPtr, 0);
return (*env)->NewStringUTF(env, "FILE NOT VALID");
}
else {
fseek(file, 0, SEEK_SET);
fwrite(bufferPtr, 1, 512, file);
fflush(file);
fclose(file);
}
(*env)->ReleaseByteArrayElements(env, array, bufferPtr, 0);
return (*env)->NewStringUTF(env, "JNI Written");
}
But the file pointer il always NULL
The file must be accessed in random mode.
What is wrong? Is the method correct? There are alternatives?
Thank you!
Roberto
--
You received this message because you are subscribed to the Google Groups
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/android-developers.
To view this discussion on the web visit
https://groups.google.com/d/msgid/android-developers/c1c2eaf5-b9ab-4221-816a-34eb6e5a1a72%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.