some changes gui and gps..

master
steffen 13 years ago
parent 5ff050d5b1
commit ce4b8e828a

@ -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);

@ -14,9 +14,9 @@ public class spOSMrNActivity extends NativeActivity {
spOSMrNActivity _activity; spOSMrNActivity _activity;
String gpsline; String gpsline;
String nmealine; String nmealine;
boolean started = false;
private LocationManager mLocMan; private LocationManager mLocMan;
private LocationListener mLocListener; private LocationListener mLocListener;
int i = 0;
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
mLocMan = (LocationManager) getSystemService(Context.LOCATION_SERVICE); mLocMan = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
@ -24,7 +24,10 @@ public class spOSMrNActivity extends NativeActivity {
mLocMan.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mLocListener); mLocMan.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mLocListener);
mLocMan.addNmeaListener(new NmeaListener() { mLocMan.addNmeaListener(new NmeaListener() {
public void onNmeaReceived(long timestamp, String nmea) { 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 // get gps data fill one line into gpsline
public void GPSDataGetLine() { public void GPSDataGetLine() {
Log.i(TAG, "GPSDataGetLine called"); // Log.i(TAG, "GPSDataGetLine called");
gpsline = nmealine; gpsline = nmealine;
nmealine = ""; nmealine = "";
} }
@ -62,11 +65,13 @@ public class spOSMrNActivity extends NativeActivity {
// start gps part // start gps part
public void GPSDataStart() { public void GPSDataStart() {
Log.i(TAG, "GPSDataStart called"); Log.i(TAG, "GPSDataStart called");
started = true;
} }
// stop gps part // stop gps part
public void GPSDataStop() { public void GPSDataStop() {
Log.i(TAG, "GPSDataStop called"); Log.i(TAG, "GPSDataStop called");
started = false;
} }
// Do some cleanup // Do some cleanup

Loading…
Cancel
Save