diff options
| author | Android (Google) Code Review <android-gerrit@google.com> | 2009-06-11 11:41:38 -0700 |
|---|---|---|
| committer | The Android Open Source Project <initial-contribution@android.com> | 2009-06-11 11:41:38 -0700 |
| commit | 989895e43f59e00fe0f07ac3dd6e373258caf693 (patch) | |
| tree | ef2d4c13e80add0a157c679c4f6e873907ece171 | |
| parent | d881dc7d6aafd08b8a82edddd2735dc411c9ab43 (diff) | |
| parent | fa699ea22a13a92694de75ef948a81da23e71642 (diff) | |
| download | frameworks_base-989895e43f59e00fe0f07ac3dd6e373258caf693.zip frameworks_base-989895e43f59e00fe0f07ac3dd6e373258caf693.tar.gz frameworks_base-989895e43f59e00fe0f07ac3dd6e373258caf693.tar.bz2 | |
am fa699ea2: Merge change 3899 into donut
Merge commit 'fa699ea22a13a92694de75ef948a81da23e71642'
* commit 'fa699ea22a13a92694de75ef948a81da23e71642':
GpsLocationProvider: Add hooks for GPS location injection.
| -rw-r--r-- | core/jni/android_location_GpsLocationProvider.cpp | 7 | ||||
| -rw-r--r-- | location/java/com/android/internal/location/GpsLocationProvider.java | 7 |
2 files changed, 13 insertions, 1 deletions
diff --git a/core/jni/android_location_GpsLocationProvider.cpp b/core/jni/android_location_GpsLocationProvider.cpp index 0858741..5c4fb22 100644 --- a/core/jni/android_location_GpsLocationProvider.cpp +++ b/core/jni/android_location_GpsLocationProvider.cpp @@ -270,6 +270,12 @@ static void android_location_GpsLocationProvider_inject_time(JNIEnv* env, jobjec sGpsInterface->inject_time(time, timeReference, uncertainty); } +static void android_location_GpsLocationProvider_inject_location(JNIEnv* env, jobject obj, + jdouble latitude, jdouble longitude, jfloat accuracy) +{ + sGpsInterface->inject_location(latitude, longitude, accuracy); +} + static jboolean android_location_GpsLocationProvider_supports_xtra(JNIEnv* env, jobject obj) { if (!sGpsXtraInterface) { @@ -353,6 +359,7 @@ static JNINativeMethod sMethods[] = { {"native_wait_for_event", "()V", (void*)android_location_GpsLocationProvider_wait_for_event}, {"native_read_sv_status", "([I[F[F[F[I)I", (void*)android_location_GpsLocationProvider_read_sv_status}, {"native_inject_time", "(JJI)V", (void*)android_location_GpsLocationProvider_inject_time}, + {"native_inject_location", "(DDF)V", (void*)android_location_GpsLocationProvider_inject_location}, {"native_supports_xtra", "()Z", (void*)android_location_GpsLocationProvider_supports_xtra}, {"native_inject_xtra_data", "([BI)V", (void*)android_location_GpsLocationProvider_inject_xtra_data}, {"native_agps_data_conn_open", "(Ljava/lang/String;)V", (void*)android_location_GpsLocationProvider_agps_data_conn_open}, diff --git a/location/java/com/android/internal/location/GpsLocationProvider.java b/location/java/com/android/internal/location/GpsLocationProvider.java index 725fbf9..9698553 100644 --- a/location/java/com/android/internal/location/GpsLocationProvider.java +++ b/location/java/com/android/internal/location/GpsLocationProvider.java @@ -410,6 +410,10 @@ public class GpsLocationProvider extends ILocationProvider.Stub { * Someday we might use this for network location injection to aid the GPS */ public void updateLocation(Location location) { + if (location.hasAccuracy()) { + native_inject_location(location.getLatitude(), location.getLongitude(), + location.getAccuracy()); + } } /** @@ -1210,7 +1214,8 @@ public class GpsLocationProvider extends ILocationProvider.Stub { // mask[0] is ephemeris mask and mask[1] is almanac mask private native int native_read_sv_status(int[] svs, float[] snrs, float[] elevations, float[] azimuths, int[] masks); - + private native void native_inject_location(double latitude, double longitude, float accuracy); + // XTRA Support private native void native_inject_time(long time, long timeReference, int uncertainty); private native boolean native_supports_xtra(); |
