Loading services/core/java/com/android/server/location/gnss/GnssMeasurementsProvider.java +48 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import static com.android.server.location.gnss.GnssManagerService.TAG; import android.annotation.NonNull; import android.annotation.Nullable; import android.app.AppOpsManager; import android.location.GnssMeasurement; import android.location.GnssMeasurementRequest; import android.location.GnssMeasurementsEvent; import android.location.IGnssMeasurementsListener; Loading @@ -33,6 +34,7 @@ import android.os.IBinder; import android.stats.location.LocationStatsEnums; import android.util.Log; import com.android.internal.annotations.GuardedBy; import com.android.server.location.gnss.GnssConfiguration.HalInterfaceVersion; import com.android.server.location.gnss.hal.GnssNative; import com.android.server.location.injector.AppOpsHelper; Loading @@ -40,6 +42,8 @@ import com.android.server.location.injector.Injector; import com.android.server.location.injector.LocationUsageLogger; import com.android.server.location.injector.SettingsHelper; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.Collection; /** Loading Loading @@ -91,6 +95,9 @@ public final class GnssMeasurementsProvider extends private final LocationUsageLogger mLogger; private final GnssNative mGnssNative; @GuardedBy("mMultiplexerLock") private GnssMeasurementsEvent mLastGnssMeasurementsEvent; public GnssMeasurementsProvider(Injector injector, GnssNative gnssNative) { super(injector); mAppOpsHelper = injector.getAppOpsHelper(); Loading Loading @@ -264,5 +271,46 @@ public final class GnssMeasurementsProvider extends return null; } }); synchronized (mMultiplexerLock) { mLastGnssMeasurementsEvent = event; } } @Override public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { super.dump(fd, pw, args); pw.print("last measurements="); pw.println(getLastMeasurementEventSummary()); } /** * Returns a string of GnssMeasurementsEvent summary including received time, satellite count * and average baseband C/No. */ private String getLastMeasurementEventSummary() { synchronized (mMultiplexerLock) { if (mLastGnssMeasurementsEvent == null) { return null; } StringBuilder builder = new StringBuilder("["); builder.append("elapsedRealtimeNs=").append( mLastGnssMeasurementsEvent.getClock().getElapsedRealtimeNanos()); builder.append(" measurementCount=").append( mLastGnssMeasurementsEvent.getMeasurements().size()); float sumBasebandCn0 = 0; int countBasebandCn0 = 0; for (GnssMeasurement measurement : mLastGnssMeasurementsEvent.getMeasurements()) { if (measurement.hasBasebandCn0DbHz()) { sumBasebandCn0 += measurement.getBasebandCn0DbHz(); countBasebandCn0++; } } if (countBasebandCn0 > 0) { builder.append(" avgBasebandCn0=").append(sumBasebandCn0 / countBasebandCn0); } builder.append("]"); return builder.toString(); } } } Loading
services/core/java/com/android/server/location/gnss/GnssMeasurementsProvider.java +48 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import static com.android.server.location.gnss.GnssManagerService.TAG; import android.annotation.NonNull; import android.annotation.Nullable; import android.app.AppOpsManager; import android.location.GnssMeasurement; import android.location.GnssMeasurementRequest; import android.location.GnssMeasurementsEvent; import android.location.IGnssMeasurementsListener; Loading @@ -33,6 +34,7 @@ import android.os.IBinder; import android.stats.location.LocationStatsEnums; import android.util.Log; import com.android.internal.annotations.GuardedBy; import com.android.server.location.gnss.GnssConfiguration.HalInterfaceVersion; import com.android.server.location.gnss.hal.GnssNative; import com.android.server.location.injector.AppOpsHelper; Loading @@ -40,6 +42,8 @@ import com.android.server.location.injector.Injector; import com.android.server.location.injector.LocationUsageLogger; import com.android.server.location.injector.SettingsHelper; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.Collection; /** Loading Loading @@ -91,6 +95,9 @@ public final class GnssMeasurementsProvider extends private final LocationUsageLogger mLogger; private final GnssNative mGnssNative; @GuardedBy("mMultiplexerLock") private GnssMeasurementsEvent mLastGnssMeasurementsEvent; public GnssMeasurementsProvider(Injector injector, GnssNative gnssNative) { super(injector); mAppOpsHelper = injector.getAppOpsHelper(); Loading Loading @@ -264,5 +271,46 @@ public final class GnssMeasurementsProvider extends return null; } }); synchronized (mMultiplexerLock) { mLastGnssMeasurementsEvent = event; } } @Override public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { super.dump(fd, pw, args); pw.print("last measurements="); pw.println(getLastMeasurementEventSummary()); } /** * Returns a string of GnssMeasurementsEvent summary including received time, satellite count * and average baseband C/No. */ private String getLastMeasurementEventSummary() { synchronized (mMultiplexerLock) { if (mLastGnssMeasurementsEvent == null) { return null; } StringBuilder builder = new StringBuilder("["); builder.append("elapsedRealtimeNs=").append( mLastGnssMeasurementsEvent.getClock().getElapsedRealtimeNanos()); builder.append(" measurementCount=").append( mLastGnssMeasurementsEvent.getMeasurements().size()); float sumBasebandCn0 = 0; int countBasebandCn0 = 0; for (GnssMeasurement measurement : mLastGnssMeasurementsEvent.getMeasurements()) { if (measurement.hasBasebandCn0DbHz()) { sumBasebandCn0 += measurement.getBasebandCn0DbHz(); countBasebandCn0++; } } if (countBasebandCn0 > 0) { builder.append(" avgBasebandCn0=").append(sumBasebandCn0 / countBasebandCn0); } builder.append("]"); return builder.toString(); } } }