|
|
|
@ -452,20 +452,18 @@ int gps_android_device_read (char *ptr, int ptrsize) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* call up the java method to prepare a new line */
|
|
|
|
/* call up the java method to prepare a new line */
|
|
|
|
// d_printf ("gps_android_device_read: call java");
|
|
|
|
|
|
|
|
jclass clazz = (*env)->GetObjectClass(env, activity->clazz);
|
|
|
|
jclass clazz = (*env)->GetObjectClass(env, activity->clazz);
|
|
|
|
jmethodID methodID = (*env)->GetMethodID(env, clazz, "GPSDataGetLine", "()V");
|
|
|
|
jmethodID methodID = (*env)->GetMethodID(env, clazz, "GPSDataGetLine", "()V");
|
|
|
|
(*env)->CallVoidMethod(env, activity->clazz, methodID);
|
|
|
|
(*env)->CallVoidMethod(env, activity->clazz, methodID);
|
|
|
|
// d_printf ("gps_android_device_read: finished java call");
|
|
|
|
|
|
|
|
/* retrieve the new line, copy new line, release new line */
|
|
|
|
/* retrieve the new line, copy new line, release new line */
|
|
|
|
jfieldID fid = (*env)->GetFieldID(env, clazz, "gpsline", "Ljava/lang/String;");
|
|
|
|
jfieldID fid = (*env)->GetFieldID(env, clazz, "gpsline", "Ljava/lang/String;");
|
|
|
|
jstr = (*env)->GetObjectField(env, activity->clazz, fid);
|
|
|
|
jstr = (*env)->GetObjectField(env, activity->clazz, fid);
|
|
|
|
str = (*env)->GetStringUTFChars(env, jstr, 0);
|
|
|
|
str = (*env)->GetStringUTFChars(env, jstr, 0);
|
|
|
|
// d_printf ("str:%p", str);
|
|
|
|
if (str != NULL) {
|
|
|
|
if (str != NULL)
|
|
|
|
// d_printf ("str:ptrsize:%d strsize:%d '%s'", ptrsize, strlen(str), str);
|
|
|
|
strncpy (ptr, str, ptrsize);
|
|
|
|
strncpy (ptr, str, ptrsize);
|
|
|
|
|
|
|
|
}
|
|
|
|
else ptr[0] = 0;
|
|
|
|
else ptr[0] = 0;
|
|
|
|
d_printf ("NMEA:%s", ptr);
|
|
|
|
|
|
|
|
(*env)->ReleaseStringUTFChars(env, jstr, str);
|
|
|
|
(*env)->ReleaseStringUTFChars(env, jstr, str);
|
|
|
|
|
|
|
|
|
|
|
|
(*jvm)->DetachCurrentThread(jvm);
|
|
|
|
(*jvm)->DetachCurrentThread(jvm);
|
|
|
|
|