From ce4b8e828a78ee0d8d5c6f98b1b7a2f6379826d3 Mon Sep 17 00:00:00 2001 From: steffen Date: Fri, 29 Mar 2013 01:27:43 +0000 Subject: [PATCH] some changes gui and gps.. --- android/jni/main.c | 8 +++----- .../src/de/gulpe/sposmroute/spOSMrNActivity.java | 13 +++++++++---- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/android/jni/main.c b/android/jni/main.c index 372d294..aff32ce 100644 --- a/android/jni/main.c +++ b/android/jni/main.c @@ -452,20 +452,18 @@ int gps_android_device_read (char *ptr, int ptrsize) { } /* 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); jmethodID methodID = (*env)->GetMethodID(env, clazz, "GPSDataGetLine", "()V"); (*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 */ jfieldID fid = (*env)->GetFieldID(env, clazz, "gpsline", "Ljava/lang/String;"); jstr = (*env)->GetObjectField(env, activity->clazz, fid); 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); + } else ptr[0] = 0; - d_printf ("NMEA:%s", ptr); (*env)->ReleaseStringUTFChars(env, jstr, str); (*jvm)->DetachCurrentThread(jvm); diff --git a/android/src/de/gulpe/sposmroute/spOSMrNActivity.java b/android/src/de/gulpe/sposmroute/spOSMrNActivity.java index 09731fd..603850e 100644 --- a/android/src/de/gulpe/sposmroute/spOSMrNActivity.java +++ b/android/src/de/gulpe/sposmroute/spOSMrNActivity.java @@ -10,13 +10,13 @@ import android.content.Context; import android.location.GpsStatus.NmeaListener; public class spOSMrNActivity extends NativeActivity { - private static final String TAG = "spOSMroute Java"; + private static final String TAG = "spOSMroute Java"; spOSMrNActivity _activity; String gpsline; String nmealine; + boolean started = false; private LocationManager mLocMan; private LocationListener mLocListener; - int i = 0; public void onCreate(Bundle savedInstanceState) { mLocMan = (LocationManager) getSystemService(Context.LOCATION_SERVICE); @@ -24,7 +24,10 @@ public class spOSMrNActivity extends NativeActivity { mLocMan.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mLocListener); mLocMan.addNmeaListener(new NmeaListener() { public void onNmeaReceived(long timestamp, String nmea) { - nmealine = nmea; + if (started) { + nmealine = nmealine + nmea; + } +// Log.i(TAG, "GPSData (cur nmea:"+nmealine+")"); } }); @@ -54,7 +57,7 @@ public class spOSMrNActivity extends NativeActivity { // get gps data fill one line into gpsline public void GPSDataGetLine() { - Log.i(TAG, "GPSDataGetLine called"); +// Log.i(TAG, "GPSDataGetLine called"); gpsline = nmealine; nmealine = ""; } @@ -62,11 +65,13 @@ public class spOSMrNActivity extends NativeActivity { // start gps part public void GPSDataStart() { Log.i(TAG, "GPSDataStart called"); + started = true; } // stop gps part public void GPSDataStop() { Log.i(TAG, "GPSDataStop called"); + started = false; } // Do some cleanup