Update jni with measurement_corrections 1.1
Test: manually injected dummy measurement corrections in GnssLocationProvider and verified that cuttlefish implementation properly recieved them below the HAL Bug: 145963440 Change-Id: Id659b0fdddd7852012da1bab07d0f26a3abb29af
This commit is contained in:
@@ -3787,12 +3787,15 @@ package android.location {
|
||||
public final class GnssMeasurementCorrections implements android.os.Parcelable {
|
||||
method public int describeContents();
|
||||
method @FloatRange(from=-1000.0F, to=10000.0f) public double getAltitudeMeters();
|
||||
method @FloatRange(from=0.0f, to=360.0f) public float getEnvironmentBearingDegrees();
|
||||
method @FloatRange(from=0.0f, to=180.0f) public float getEnvironmentBearingUncertaintyDegrees();
|
||||
method @FloatRange(from=0.0f) public double getHorizontalPositionUncertaintyMeters();
|
||||
method @FloatRange(from=-90.0F, to=90.0f) public double getLatitudeDegrees();
|
||||
method @FloatRange(from=-180.0F, to=180.0f) public double getLongitudeDegrees();
|
||||
method @NonNull public java.util.List<android.location.GnssSingleSatCorrection> getSingleSatelliteCorrectionList();
|
||||
method @IntRange(from=0) public long getToaGpsNanosecondsOfWeek();
|
||||
method @FloatRange(from=0.0f) public double getVerticalPositionUncertaintyMeters();
|
||||
method public boolean hasEnvironmentBearing();
|
||||
method public void writeToParcel(@NonNull android.os.Parcel, int);
|
||||
field public static final android.os.Parcelable.Creator<android.location.GnssMeasurementCorrections> CREATOR;
|
||||
}
|
||||
@@ -3801,6 +3804,8 @@ package android.location {
|
||||
ctor public GnssMeasurementCorrections.Builder();
|
||||
method @NonNull public android.location.GnssMeasurementCorrections build();
|
||||
method @NonNull public android.location.GnssMeasurementCorrections.Builder setAltitudeMeters(@FloatRange(from=-1000.0F, to=10000.0f) double);
|
||||
method @NonNull public android.location.GnssMeasurementCorrections.Builder setEnvironmentBearingDegrees(@FloatRange(from=0.0f, to=360.0f) float);
|
||||
method @NonNull public android.location.GnssMeasurementCorrections.Builder setEnvironmentBearingUncertaintyDegrees(@FloatRange(from=0.0f, to=180.0f) float);
|
||||
method @NonNull public android.location.GnssMeasurementCorrections.Builder setHorizontalPositionUncertaintyMeters(@FloatRange(from=0.0f) double);
|
||||
method @NonNull public android.location.GnssMeasurementCorrections.Builder setLatitudeDegrees(@FloatRange(from=-90.0F, to=90.0f) double);
|
||||
method @NonNull public android.location.GnssMeasurementCorrections.Builder setLongitudeDegrees(@FloatRange(from=-180.0F, to=180.0f) double);
|
||||
|
||||
@@ -79,6 +79,25 @@ public final class GnssMeasurementCorrections implements Parcelable {
|
||||
@NonNull
|
||||
private final List<GnssSingleSatCorrection> mSingleSatCorrectionList;
|
||||
|
||||
/**
|
||||
* Indicates whether the environment bearing is available.
|
||||
*/
|
||||
private final boolean mHasEnvironmentBearing;
|
||||
|
||||
/**
|
||||
* Environment bearing in degrees clockwise from true north, in the direction of user motion.
|
||||
* Environment bearing is provided when it is known with high probability that velocity is
|
||||
* aligned with an environment feature (such as edge of a building, or road).
|
||||
*/
|
||||
@FloatRange(from = 0.0f, to = 360.0f)
|
||||
private final float mEnvironmentBearingDegrees;
|
||||
|
||||
/**
|
||||
* Environment bearing uncertainty in degrees.
|
||||
*/
|
||||
@FloatRange(from = 0.0f, to = 180.0f)
|
||||
private final float mEnvironmentBearingUncertaintyDegrees;
|
||||
|
||||
private GnssMeasurementCorrections(Builder builder) {
|
||||
mLatitudeDegrees = builder.mLatitudeDegrees;
|
||||
mLongitudeDegrees = builder.mLongitudeDegrees;
|
||||
@@ -89,6 +108,10 @@ public final class GnssMeasurementCorrections implements Parcelable {
|
||||
final List<GnssSingleSatCorrection> singleSatCorrList = builder.mSingleSatCorrectionList;
|
||||
Preconditions.checkArgument(singleSatCorrList != null && !singleSatCorrList.isEmpty());
|
||||
mSingleSatCorrectionList = Collections.unmodifiableList(new ArrayList<>(singleSatCorrList));
|
||||
mHasEnvironmentBearing = builder.mEnvironmentBearingIsSet
|
||||
&& builder.mEnvironmentBearingUncertaintyIsSet;
|
||||
mEnvironmentBearingDegrees = builder.mEnvironmentBearingDegrees;
|
||||
mEnvironmentBearingUncertaintyDegrees = builder.mEnvironmentBearingUncertaintyDegrees;
|
||||
}
|
||||
|
||||
/** Gets the latitude in degrees at which the corrections are computed. */
|
||||
@@ -145,6 +168,31 @@ public final class GnssMeasurementCorrections implements Parcelable {
|
||||
return mSingleSatCorrectionList;
|
||||
}
|
||||
|
||||
/**
|
||||
* If true, environment bearing will be available.
|
||||
*/
|
||||
public boolean hasEnvironmentBearing() {
|
||||
return mHasEnvironmentBearing;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the environment bearing in degrees clockwise from true north, in the direction of user
|
||||
* motion. Environment bearing is provided when it is known with high probability that
|
||||
* velocity is aligned with an environment feature (such as edge of a building, or road).
|
||||
*/
|
||||
@FloatRange(from = 0.0f, to = 360.0f)
|
||||
public float getEnvironmentBearingDegrees() {
|
||||
return mEnvironmentBearingDegrees;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the environment bearing uncertainty in degrees.
|
||||
*/
|
||||
@FloatRange(from = 0.0f, to = 180.0f)
|
||||
public float getEnvironmentBearingUncertaintyDegrees() {
|
||||
return mEnvironmentBearingUncertaintyDegrees;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
@@ -167,6 +215,12 @@ public final class GnssMeasurementCorrections implements Parcelable {
|
||||
parcel.readTypedList(singleSatCorrectionList, GnssSingleSatCorrection.CREATOR);
|
||||
gnssMeasurementCorrectons.setSingleSatelliteCorrectionList(
|
||||
singleSatCorrectionList);
|
||||
boolean hasEnvironmentBearing = parcel.readBoolean();
|
||||
if (hasEnvironmentBearing) {
|
||||
gnssMeasurementCorrectons.setEnvironmentBearingDegrees(parcel.readFloat());
|
||||
gnssMeasurementCorrectons.setEnvironmentBearingUncertaintyDegrees(
|
||||
parcel.readFloat());
|
||||
}
|
||||
return gnssMeasurementCorrectons.build();
|
||||
}
|
||||
|
||||
@@ -192,6 +246,14 @@ public final class GnssMeasurementCorrections implements Parcelable {
|
||||
String.format(format, "ToaGpsNanosecondsOfWeek = ", mToaGpsNanosecondsOfWeek));
|
||||
builder.append(
|
||||
String.format(format, "mSingleSatCorrectionList = ", mSingleSatCorrectionList));
|
||||
builder.append(
|
||||
String.format(format, "HasEnvironmentBearing = ", mHasEnvironmentBearing));
|
||||
builder.append(
|
||||
String.format(format, "EnvironmentBearingDegrees = ",
|
||||
mEnvironmentBearingDegrees));
|
||||
builder.append(
|
||||
String.format(format, "EnvironmentBearingUncertaintyDegrees = ",
|
||||
mEnvironmentBearingUncertaintyDegrees));
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
@@ -204,6 +266,11 @@ public final class GnssMeasurementCorrections implements Parcelable {
|
||||
parcel.writeDouble(mVerticalPositionUncertaintyMeters);
|
||||
parcel.writeLong(mToaGpsNanosecondsOfWeek);
|
||||
parcel.writeTypedList(mSingleSatCorrectionList);
|
||||
parcel.writeBoolean(mHasEnvironmentBearing);
|
||||
if (mHasEnvironmentBearing) {
|
||||
parcel.writeFloat(mEnvironmentBearingDegrees);
|
||||
parcel.writeFloat(mEnvironmentBearingUncertaintyDegrees);
|
||||
}
|
||||
}
|
||||
|
||||
/** Builder for {@link GnssMeasurementCorrections} */
|
||||
@@ -219,6 +286,10 @@ public final class GnssMeasurementCorrections implements Parcelable {
|
||||
private double mVerticalPositionUncertaintyMeters;
|
||||
private long mToaGpsNanosecondsOfWeek;
|
||||
@Nullable private List<GnssSingleSatCorrection> mSingleSatCorrectionList;
|
||||
private float mEnvironmentBearingDegrees;
|
||||
private boolean mEnvironmentBearingIsSet = false;
|
||||
private float mEnvironmentBearingUncertaintyDegrees;
|
||||
private boolean mEnvironmentBearingUncertaintyIsSet = false;
|
||||
|
||||
/** Sets the latitude in degrees at which the corrections are computed. */
|
||||
@NonNull public Builder setLatitudeDegrees(
|
||||
@@ -282,8 +353,37 @@ public final class GnssMeasurementCorrections implements Parcelable {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the environment bearing in degrees clockwise from true north, in the direction of
|
||||
* user motion. Environment bearing is provided when it is known with high probability
|
||||
* that velocity is aligned with an environment feature (such as edge of a building, or
|
||||
* road).
|
||||
*/
|
||||
@NonNull public Builder setEnvironmentBearingDegrees(
|
||||
@FloatRange(from = 0.0f, to = 360.0f)
|
||||
float environmentBearingDegrees) {
|
||||
mEnvironmentBearingDegrees = environmentBearingDegrees;
|
||||
mEnvironmentBearingIsSet = true;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the environment bearing uncertainty in degrees.
|
||||
*/
|
||||
@NonNull public Builder setEnvironmentBearingUncertaintyDegrees(
|
||||
@FloatRange(from = 0.0f, to = 180.0f)
|
||||
float environmentBearingUncertaintyDegrees) {
|
||||
mEnvironmentBearingUncertaintyDegrees = environmentBearingUncertaintyDegrees;
|
||||
mEnvironmentBearingUncertaintyIsSet = true;
|
||||
return this;
|
||||
}
|
||||
|
||||
/** Builds a {@link GnssMeasurementCorrections} instance as specified by this builder. */
|
||||
@NonNull public GnssMeasurementCorrections build() {
|
||||
if (mEnvironmentBearingIsSet ^ mEnvironmentBearingUncertaintyIsSet) {
|
||||
throw new IllegalStateException("Both environment bearing and environment bearing "
|
||||
+ "uncertainty must be set.");
|
||||
}
|
||||
return new GnssMeasurementCorrections(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
#include <android/hardware/gnss/2.0/IGnssMeasurement.h>
|
||||
#include <android/hardware/gnss/2.1/IGnssMeasurement.h>
|
||||
#include <android/hardware/gnss/measurement_corrections/1.0/IMeasurementCorrections.h>
|
||||
#include <android/hardware/gnss/measurement_corrections/1.1/IMeasurementCorrections.h>
|
||||
#include <android/hardware/gnss/visibility_control/1.0/IGnssVisibilityControl.h>
|
||||
#include <nativehelper/JNIHelp.h>
|
||||
#include "jni.h"
|
||||
@@ -88,6 +89,9 @@ static jmethodID method_correctionsGetHorPosUncMeters;
|
||||
static jmethodID method_correctionsGetVerPosUncMeters;
|
||||
static jmethodID method_correctionsGetToaGpsNanosecondsOfWeek;
|
||||
static jmethodID method_correctionsGetSingleSatCorrectionList;
|
||||
static jmethodID method_correctionsHasEnvironmentBearing;
|
||||
static jmethodID method_correctionsGetEnvironmentBearingDegrees;
|
||||
static jmethodID method_correctionsGetEnvironmentBearingUncertaintyDegrees;
|
||||
static jmethodID method_listSize;
|
||||
static jmethodID method_correctionListGet;
|
||||
static jmethodID method_correctionSatFlags;
|
||||
@@ -142,7 +146,9 @@ using android::hardware::gnss::V1_0::IGnssXtraCallback;
|
||||
|
||||
using android::hardware::gnss::V2_0::ElapsedRealtimeFlags;
|
||||
|
||||
using android::hardware::gnss::measurement_corrections::V1_0::MeasurementCorrections;
|
||||
using MeasurementCorrections_V1_0 = android::hardware::gnss::measurement_corrections::V1_0::MeasurementCorrections;
|
||||
using MeasurementCorrections_V1_1 = android::hardware::gnss::measurement_corrections::V1_1::MeasurementCorrections;
|
||||
|
||||
using android::hardware::gnss::measurement_corrections::V1_0::SingleSatCorrection;
|
||||
using android::hardware::gnss::measurement_corrections::V1_0::ReflectingPlane;
|
||||
|
||||
@@ -184,7 +190,8 @@ using IGnssBatching_V2_0 = android::hardware::gnss::V2_0::IGnssBatching;
|
||||
using IGnssBatchingCallback_V1_0 = android::hardware::gnss::V1_0::IGnssBatchingCallback;
|
||||
using IGnssBatchingCallback_V2_0 = android::hardware::gnss::V2_0::IGnssBatchingCallback;
|
||||
|
||||
using android::hardware::gnss::measurement_corrections::V1_0::IMeasurementCorrections;
|
||||
using IMeasurementCorrections_V1_0 = android::hardware::gnss::measurement_corrections::V1_0::IMeasurementCorrections;
|
||||
using IMeasurementCorrections_V1_1 = android::hardware::gnss::measurement_corrections::V1_1::IMeasurementCorrections;
|
||||
using android::hardware::gnss::measurement_corrections::V1_0::IMeasurementCorrectionsCallback;
|
||||
using android::hardware::gnss::measurement_corrections::V1_0::GnssSingleSatCorrectionFlags;
|
||||
|
||||
@@ -231,7 +238,8 @@ sp<IGnssMeasurement_V1_1> gnssMeasurementIface_V1_1 = nullptr;
|
||||
sp<IGnssMeasurement_V2_0> gnssMeasurementIface_V2_0 = nullptr;
|
||||
sp<IGnssMeasurement_V2_1> gnssMeasurementIface_V2_1 = nullptr;
|
||||
sp<IGnssNavigationMessage> gnssNavigationMessageIface = nullptr;
|
||||
sp<IMeasurementCorrections> gnssCorrectionsIface = nullptr;
|
||||
sp<IMeasurementCorrections_V1_0> gnssCorrectionsIface_V1_0 = nullptr;
|
||||
sp<IMeasurementCorrections_V1_1> gnssCorrectionsIface_V1_1 = nullptr;
|
||||
sp<IGnssVisibilityControl> gnssVisibilityControlIface = nullptr;
|
||||
|
||||
#define WAKE_LOCK_NAME "GPS"
|
||||
@@ -1692,6 +1700,13 @@ static void android_location_GnssLocationProvider_class_init_native(JNIEnv* env,
|
||||
method_correctionsGetSingleSatCorrectionList = env->GetMethodID(
|
||||
measCorrClass, "getSingleSatelliteCorrectionList", "()Ljava/util/List;");
|
||||
|
||||
method_correctionsHasEnvironmentBearing = env->GetMethodID(
|
||||
measCorrClass, "hasEnvironmentBearing", "()Z");
|
||||
method_correctionsGetEnvironmentBearingDegrees = env->GetMethodID(
|
||||
measCorrClass, "getEnvironmentBearingDegrees", "()F");
|
||||
method_correctionsGetEnvironmentBearingUncertaintyDegrees = env->GetMethodID(
|
||||
measCorrClass, "getEnvironmentBearingUncertaintyDegrees", "()F");
|
||||
|
||||
jclass corrListClass = env->FindClass("java/util/List");
|
||||
method_listSize = env->GetMethodID(corrListClass, "size", "()I");
|
||||
method_correctionListGet = env->GetMethodID(corrListClass, "get", "(I)Ljava/lang/Object;");
|
||||
@@ -1874,12 +1889,20 @@ static void android_location_GnssLocationProvider_init_once(JNIEnv* env, jclass
|
||||
}
|
||||
}
|
||||
|
||||
if (gnssHal_V2_0 != nullptr) {
|
||||
if (gnssHal_V2_1 != nullptr) {
|
||||
auto gnssCorrections = gnssHal_V2_1->getExtensionMeasurementCorrections_1_1();
|
||||
if (!gnssCorrections.isOk()) {
|
||||
ALOGD("Unable to get a handle to GnssMeasurementCorrections 1.1 interface");
|
||||
} else {
|
||||
gnssCorrectionsIface_V1_1 = gnssCorrections;
|
||||
gnssCorrectionsIface_V1_0 = gnssCorrectionsIface_V1_1;
|
||||
}
|
||||
} else if (gnssHal_V2_0 != nullptr) {
|
||||
auto gnssCorrections = gnssHal_V2_0->getExtensionMeasurementCorrections();
|
||||
if (!gnssCorrections.isOk()) {
|
||||
ALOGD("Unable to get a handle to GnssMeasurementCorrections interface");
|
||||
} else {
|
||||
gnssCorrectionsIface = gnssCorrections;
|
||||
gnssCorrectionsIface_V1_0 = gnssCorrections;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2110,11 +2133,18 @@ static jboolean android_location_GnssLocationProvider_init(JNIEnv* env, jobject
|
||||
}
|
||||
|
||||
// Set IMeasurementCorrections.hal callback.
|
||||
if (gnssCorrectionsIface != nullptr) {
|
||||
if (gnssCorrectionsIface_V1_1 != nullptr) {
|
||||
sp<IMeasurementCorrectionsCallback> gnssCorrectionsIfaceCbIface =
|
||||
new MeasurementCorrectionsCallback();
|
||||
result = gnssCorrectionsIface_V1_1->setCallback(gnssCorrectionsIfaceCbIface);
|
||||
checkHidlReturn(result, "IMeasurementCorrections 1.1 setCallback() failed.");
|
||||
} else if (gnssCorrectionsIface_V1_0 != nullptr) {
|
||||
sp<IMeasurementCorrectionsCallback> gnssCorrectionsIfaceCbIface =
|
||||
new MeasurementCorrectionsCallback();
|
||||
result = gnssCorrectionsIface->setCallback(gnssCorrectionsIfaceCbIface);
|
||||
checkHidlReturn(result, "IMeasurementCorrections setCallback() failed.");
|
||||
result = gnssCorrectionsIface_V1_0->setCallback(gnssCorrectionsIfaceCbIface);
|
||||
checkHidlReturn(result, "IMeasurementCorrections 1.0 setCallback() failed.");
|
||||
} else {
|
||||
ALOGI("Unable to find IMeasurementCorrections.");
|
||||
}
|
||||
|
||||
return JNI_TRUE;
|
||||
@@ -2717,7 +2747,7 @@ static jboolean android_location_GnssMeasurementsProvider_stop_measurement_colle
|
||||
static jboolean
|
||||
android_location_GnssMeasurementCorrectionsProvider_is_measurement_corrections_supported(
|
||||
JNIEnv* env, jclass clazz) {
|
||||
if (gnssCorrectionsIface != nullptr) {
|
||||
if (gnssCorrectionsIface_V1_0 != nullptr || gnssCorrectionsIface_V1_1 != nullptr) {
|
||||
return JNI_TRUE;
|
||||
}
|
||||
|
||||
@@ -2730,24 +2760,12 @@ static jboolean
|
||||
jobject obj /* clazz*/,
|
||||
jobject correctionsObj) {
|
||||
|
||||
if (gnssCorrectionsIface == nullptr) {
|
||||
if (gnssCorrectionsIface_V1_0 == nullptr && gnssCorrectionsIface_V1_1 == nullptr) {
|
||||
ALOGW("Trying to inject GNSS measurement corrections on a chipset that does not"
|
||||
" support them.");
|
||||
return JNI_FALSE;
|
||||
}
|
||||
|
||||
jdouble latitudeDegreesCorr = env->CallDoubleMethod(
|
||||
correctionsObj, method_correctionsGetLatitudeDegrees);
|
||||
jdouble longitudeDegreesCorr = env->CallDoubleMethod(
|
||||
correctionsObj, method_correctionsGetLongitudeDegrees);
|
||||
jdouble altitudeDegreesCorr = env->CallDoubleMethod(
|
||||
correctionsObj, method_correctionsGetAltitudeMeters);
|
||||
jdouble horizontalPositionUncertaintyMeters = env->CallDoubleMethod(
|
||||
correctionsObj, method_correctionsGetHorPosUncMeters);
|
||||
jdouble verticalPositionUncertaintyMeters = env->CallDoubleMethod(
|
||||
correctionsObj, method_correctionsGetVerPosUncMeters);
|
||||
jlong toaGpsNanosOfWeek = env->CallLongMethod(
|
||||
correctionsObj, method_correctionsGetToaGpsNanosecondsOfWeek);
|
||||
jobject singleSatCorrectionList = env->CallObjectMethod(correctionsObj,
|
||||
method_correctionsGetSingleSatCorrectionList);
|
||||
|
||||
@@ -2816,7 +2834,21 @@ static jboolean
|
||||
};
|
||||
list[i] = singleSatCorrection;
|
||||
}
|
||||
MeasurementCorrections measurementCorrections = {
|
||||
|
||||
jdouble latitudeDegreesCorr = env->CallDoubleMethod(
|
||||
correctionsObj, method_correctionsGetLatitudeDegrees);
|
||||
jdouble longitudeDegreesCorr = env->CallDoubleMethod(
|
||||
correctionsObj, method_correctionsGetLongitudeDegrees);
|
||||
jdouble altitudeDegreesCorr = env->CallDoubleMethod(
|
||||
correctionsObj, method_correctionsGetAltitudeMeters);
|
||||
jdouble horizontalPositionUncertaintyMeters = env->CallDoubleMethod(
|
||||
correctionsObj, method_correctionsGetHorPosUncMeters);
|
||||
jdouble verticalPositionUncertaintyMeters = env->CallDoubleMethod(
|
||||
correctionsObj, method_correctionsGetVerPosUncMeters);
|
||||
jlong toaGpsNanosOfWeek = env->CallLongMethod(
|
||||
correctionsObj, method_correctionsGetToaGpsNanosecondsOfWeek);
|
||||
|
||||
MeasurementCorrections_V1_0 measurementCorrections_1_0 = {
|
||||
.latitudeDegrees = latitudeDegreesCorr,
|
||||
.longitudeDegrees = longitudeDegreesCorr,
|
||||
.altitudeMeters = altitudeDegreesCorr,
|
||||
@@ -2826,8 +2858,28 @@ static jboolean
|
||||
.satCorrections = list,
|
||||
};
|
||||
|
||||
auto result = gnssCorrectionsIface->setCorrections(measurementCorrections);
|
||||
return checkHidlReturn(result, "IMeasurementCorrections setCorrections() failed.");
|
||||
if (gnssCorrectionsIface_V1_1 != nullptr) {
|
||||
|
||||
jboolean hasEnvironmentBearingCorr = env->CallBooleanMethod(
|
||||
correctionsObj, method_correctionsHasEnvironmentBearing);
|
||||
jfloat environmentBearingDegreesCorr = env->CallFloatMethod(
|
||||
correctionsObj, method_correctionsGetEnvironmentBearingDegrees);
|
||||
jfloat environmentBearingUncertaintyDegreesCorr = env->CallFloatMethod(
|
||||
correctionsObj, method_correctionsGetEnvironmentBearingUncertaintyDegrees);
|
||||
|
||||
MeasurementCorrections_V1_1 measurementCorrections_1_1 = {
|
||||
.v1_0 = measurementCorrections_1_0,
|
||||
.hasEnvironmentBearing = static_cast<bool>(hasEnvironmentBearingCorr),
|
||||
.environmentBearingDegrees = environmentBearingDegreesCorr,
|
||||
.environmentBearingUncertaintyDegrees = environmentBearingUncertaintyDegreesCorr,
|
||||
};
|
||||
|
||||
auto result = gnssCorrectionsIface_V1_1->setCorrections_1_1(measurementCorrections_1_1);
|
||||
return checkHidlReturn(result, "IMeasurementCorrections 1.1 setCorrections() failed.");
|
||||
}
|
||||
|
||||
auto result = gnssCorrectionsIface_V1_0->setCorrections(measurementCorrections_1_0);
|
||||
return checkHidlReturn(result, "IMeasurementCorrections 1.0 setCorrections() failed.");
|
||||
}
|
||||
|
||||
static jboolean android_location_GnssNavigationMessageProvider_is_navigation_message_supported(
|
||||
|
||||
Reference in New Issue
Block a user