diff options
Diffstat (limited to 'location/java/com/android/internal/location/GpsLocationProvider.java')
-rwxr-xr-x | location/java/com/android/internal/location/GpsLocationProvider.java | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/location/java/com/android/internal/location/GpsLocationProvider.java b/location/java/com/android/internal/location/GpsLocationProvider.java index be562f1..15c4b4b 100755 --- a/location/java/com/android/internal/location/GpsLocationProvider.java +++ b/location/java/com/android/internal/location/GpsLocationProvider.java @@ -540,7 +540,11 @@ public class GpsLocationProvider implements LocationProviderInterface { if (DEBUG) { Log.d(TAG, "calling native_inject_xtra_data"); } - native_inject_xtra_data(data, data.length); + if (!native_inject_xtra_data(data, data.length)) { + // try again later + mHandler.removeMessages(DOWNLOAD_XTRA_DATA); + mHandler.sendMessageDelayed(Message.obtain(mHandler, DOWNLOAD_XTRA_DATA), RETRY_INTERVAL); + } } else { // try again later mHandler.removeMessages(DOWNLOAD_XTRA_DATA); @@ -1460,7 +1464,7 @@ public class GpsLocationProvider implements LocationProviderInterface { // XTRA Support private native void native_inject_time(long time, long timeReference, int uncertainty); private native boolean native_supports_xtra(); - private native void native_inject_xtra_data(byte[] data, int length); + private native boolean native_inject_xtra_data(byte[] data, int length); // DEBUG Support private native String native_get_internal_state(); |