Merge change 3899 into donut
* changes: GpsLocationProvider: Add hooks for GPS location injection.
This commit is contained in:
@@ -270,6 +270,12 @@ static void android_location_GpsLocationProvider_inject_time(JNIEnv* env, jobjec
|
|||||||
sGpsInterface->inject_time(time, timeReference, uncertainty);
|
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)
|
static jboolean android_location_GpsLocationProvider_supports_xtra(JNIEnv* env, jobject obj)
|
||||||
{
|
{
|
||||||
if (!sGpsXtraInterface) {
|
if (!sGpsXtraInterface) {
|
||||||
@@ -353,6 +359,7 @@ static JNINativeMethod sMethods[] = {
|
|||||||
{"native_wait_for_event", "()V", (void*)android_location_GpsLocationProvider_wait_for_event},
|
{"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_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_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_supports_xtra", "()Z", (void*)android_location_GpsLocationProvider_supports_xtra},
|
||||||
{"native_inject_xtra_data", "([BI)V", (void*)android_location_GpsLocationProvider_inject_xtra_data},
|
{"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},
|
{"native_agps_data_conn_open", "(Ljava/lang/String;)V", (void*)android_location_GpsLocationProvider_agps_data_conn_open},
|
||||||
|
|||||||
@@ -410,6 +410,10 @@ public class GpsLocationProvider extends ILocationProvider.Stub {
|
|||||||
* Someday we might use this for network location injection to aid the GPS
|
* Someday we might use this for network location injection to aid the GPS
|
||||||
*/
|
*/
|
||||||
public void updateLocation(Location location) {
|
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
|
// mask[0] is ephemeris mask and mask[1] is almanac mask
|
||||||
private native int native_read_sv_status(int[] svs, float[] snrs,
|
private native int native_read_sv_status(int[] svs, float[] snrs,
|
||||||
float[] elevations, float[] azimuths, int[] masks);
|
float[] elevations, float[] azimuths, int[] masks);
|
||||||
|
private native void native_inject_location(double latitude, double longitude, float accuracy);
|
||||||
|
|
||||||
// XTRA Support
|
// XTRA Support
|
||||||
private native void native_inject_time(long time, long timeReference, int uncertainty);
|
private native void native_inject_time(long time, long timeReference, int uncertainty);
|
||||||
private native boolean native_supports_xtra();
|
private native boolean native_supports_xtra();
|
||||||
|
|||||||
Reference in New Issue
Block a user