diff options
Diffstat (limited to 'navit/vehicle/android/vehicle_android.c')
-rw-r--r-- | navit/vehicle/android/vehicle_android.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/navit/vehicle/android/vehicle_android.c b/navit/vehicle/android/vehicle_android.c index 228e1ee16..15f93a869 100644 --- a/navit/vehicle/android/vehicle_android.c +++ b/navit/vehicle/android/vehicle_android.c @@ -41,6 +41,7 @@ struct vehicle_priv { double speed; double direction; double height; + double radius; int fix_type; time_t fix_time; char fixiso8601[128]; @@ -52,7 +53,7 @@ struct vehicle_priv { jclass NavitVehicleClass; jobject NavitVehicle; jclass LocationClass; - jmethodID Location_getLatitude, Location_getLongitude, Location_getSpeed, Location_getBearing, Location_getAltitude, Location_getTime; + jmethodID Location_getLatitude, Location_getLongitude, Location_getSpeed, Location_getBearing, Location_getAltitude, Location_getTime, Location_getAccuracy; }; /** @@ -80,7 +81,6 @@ static int vehicle_android_position_attr_get(struct vehicle_priv *priv, enum attr_type type, struct attr *attr) { - struct attr * active=NULL; dbg(1,"enter %s\n",attr_to_name(type)); switch (type) { #if 0 @@ -97,6 +97,10 @@ vehicle_android_position_attr_get(struct vehicle_priv *priv, case attr_position_direction: attr->u.numd = &priv->direction; break; + case attr_position_radius: + attr->u.numd = &priv->radius; + break; + #if 0 case attr_position_qual: attr->u.num = priv->sats; @@ -138,6 +142,7 @@ vehicle_android_callback(struct vehicle_priv *v, jobject location) v->speed = (*jnienv)->CallFloatMethod(jnienv, location, v->Location_getSpeed)*3.6; v->direction = (*jnienv)->CallFloatMethod(jnienv, location, v->Location_getBearing); v->height = (*jnienv)->CallDoubleMethod(jnienv, location, v->Location_getAltitude); + v->radius = (*jnienv)->CallFloatMethod(jnienv, location, v->Location_getAccuracy); tnow=(*jnienv)->CallLongMethod(jnienv, location, v->Location_getTime)/1000; tm = gmtime(&tnow); strftime(v->fixiso8601, sizeof(v->fixiso8601), "%Y-%m-%dT%TZ", tm); @@ -165,6 +170,8 @@ vehicle_android_init(struct vehicle_priv *ret) return 0; if (!android_find_method(ret->LocationClass, "getTime", "()J", &ret->Location_getTime)) return 0; + if (!android_find_method(ret->LocationClass, "getAccuracy", "()F", &ret->Location_getAccuracy)) + return 0; if (!android_find_class_global("org/navitproject/navit/NavitVehicle", &ret->NavitVehicleClass)) return 0; dbg(0,"at 3\n"); |