diff options
author | 2025-03-20 01:08:07 -0700 | |
---|---|---|
committer | 2025-03-20 01:08:07 -0700 | |
commit | 6c0cfefa8926603774761f8df53db6cc5eba6c58 (patch) | |
tree | 91ed28f39b73b80faf7219beb2e5418114d94af9 /src | |
parent | f45e22b4dafc00323664bd87345c60e626605199 (diff) | |
parent | 4054aae04feaf1a61851e609f4404757db0eda5f (diff) |
Merge "Add is_nb_iot_ntn field into related atoms" into main
Diffstat (limited to 'src')
10 files changed, 113 insertions, 24 deletions
diff --git a/src/java/com/android/internal/telephony/metrics/DataCallSessionStats.java b/src/java/com/android/internal/telephony/metrics/DataCallSessionStats.java index 175f5e4a5d..f3a111caca 100644 --- a/src/java/com/android/internal/telephony/metrics/DataCallSessionStats.java +++ b/src/java/com/android/internal/telephony/metrics/DataCallSessionStats.java @@ -310,6 +310,7 @@ public class DataCallSessionStats { copy.isNtn = call.isNtn; copy.isSatelliteTransport = call.isSatelliteTransport; copy.isProvisioningProfile = call.isProvisioningProfile; + copy.isNbIotNtn = call.isNbIotNtn; return copy; } @@ -337,8 +338,13 @@ public class DataCallSessionStats { proto.handoverFailureRat = new int[0]; proto.isNonDds = false; proto.isIwlanCrossSim = false; - proto.isNtn = mSatelliteController != null - ? mSatelliteController.isInSatelliteModeForCarrierRoaming(mPhone) : false; + if (mSatelliteController != null) { + proto.isNtn = mSatelliteController.isInSatelliteModeForCarrierRoaming(mPhone); + proto.isNbIotNtn = mSatelliteController.isInCarrierRoamingNbIotNtn(mPhone); + } else { + proto.isNtn = false; + proto.isNbIotNtn = false; + } proto.isSatelliteTransport = isSatellite; proto.isProvisioningProfile = getIsProvisioningProfile(); return proto; diff --git a/src/java/com/android/internal/telephony/metrics/MetricsCollector.java b/src/java/com/android/internal/telephony/metrics/MetricsCollector.java index 7863b25405..31f4738e01 100644 --- a/src/java/com/android/internal/telephony/metrics/MetricsCollector.java +++ b/src/java/com/android/internal/telephony/metrics/MetricsCollector.java @@ -1086,7 +1086,8 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback { state.overrideVoiceService, state.isDataEnabled, state.isIwlanCrossSim, - state.isNtn); + state.isNtn, + state.isNbIotNtn); } private static StatsEvent buildStatsEvent(VoiceCallRatUsage usage) { @@ -1172,7 +1173,8 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback { sms.count, sms.isManagedProfile, sms.isNtn, - sms.isEmergency); + sms.isEmergency, + sms.isNbIotNtn); } private static StatsEvent buildStatsEvent(OutgoingSms sms) { @@ -1198,7 +1200,8 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback { sms.isManagedProfile, sms.isEmergency, sms.isNtn, - sms.isMtSmsPolling); + sms.isMtSmsPolling, + sms.isNbIotNtn); } private static StatsEvent buildStatsEvent(DataCallSession dataCallSession) { @@ -1230,7 +1233,8 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback { dataCallSession.isIwlanCrossSim, dataCallSession.isNtn, dataCallSession.isSatelliteTransport, - dataCallSession.isProvisioningProfile); + dataCallSession.isProvisioningProfile, + dataCallSession.isNbIotNtn); } private static StatsEvent buildStatsEvent(ImsRegistrationStats stats) { @@ -1603,7 +1607,8 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback { stats.supportedSatelliteServices, stats.serviceDataPolicy, stats.satelliteDataConsumedBytes, - stats.isMultiSim); + stats.isMultiSim, + stats.isNbIotNtn); } private static StatsEvent buildStatsEvent(CarrierRoamingSatelliteControllerStats stats) { @@ -1619,7 +1624,8 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback { stats.carrierId, stats.isDeviceEntitled, stats.isMultiSim, - stats.countOfSatelliteSessions); + stats.countOfSatelliteSessions, + stats.isNbIotNtn); } private static StatsEvent buildStatsEvent(SatelliteEntitlement stats) { diff --git a/src/java/com/android/internal/telephony/metrics/PersistAtomsStorage.java b/src/java/com/android/internal/telephony/metrics/PersistAtomsStorage.java index 4346da4b79..9408ffa899 100644 --- a/src/java/com/android/internal/telephony/metrics/PersistAtomsStorage.java +++ b/src/java/com/android/internal/telephony/metrics/PersistAtomsStorage.java @@ -899,6 +899,7 @@ public class PersistAtomsStorage { existingStats.isDeviceEntitled = stats.isDeviceEntitled; existingStats.isMultiSim = stats.isMultiSim; existingStats.countOfSatelliteSessions += stats.countOfSatelliteSessions; + existingStats.isNbIotNtn = stats.isNbIotNtn; } else { mAtoms.carrierRoamingSatelliteControllerStats = insertAtRandomPlace( mAtoms.carrierRoamingSatelliteControllerStats, stats, mMaxNumSatelliteStats); @@ -2011,7 +2012,8 @@ public class PersistAtomsStorage { && state.overrideVoiceService == key.overrideVoiceService && state.isDataEnabled == key.isDataEnabled && state.isIwlanCrossSim == key.isIwlanCrossSim - && state.isNtn == key.isNtn) { + && state.isNtn == key.isNtn + && state.isNbIotNtn == key.isNbIotNtn) { return state; } } @@ -2442,9 +2444,7 @@ public class PersistAtomsStorage { CarrierRoamingSatelliteControllerStats key) { for (CarrierRoamingSatelliteControllerStats stats : mAtoms.carrierRoamingSatelliteControllerStats) { - if (stats.carrierId == key.carrierId - && stats.configDataSource == key.configDataSource - && stats.isDeviceEntitled == key.isDeviceEntitled) { + if (stats.carrierId == key.carrierId) { return stats; } } diff --git a/src/java/com/android/internal/telephony/metrics/SatelliteStats.java b/src/java/com/android/internal/telephony/metrics/SatelliteStats.java index a99613acdc..2ccd8b5259 100644 --- a/src/java/com/android/internal/telephony/metrics/SatelliteStats.java +++ b/src/java/com/android/internal/telephony/metrics/SatelliteStats.java @@ -1886,6 +1886,7 @@ public class SatelliteStats { private final int mServiceDataPolicy; private final long mSatelliteDataConsumedBytes; private final boolean mIsMultiSim; + private final boolean mIsNbIotNtn; private CarrierRoamingSatelliteSessionParams(Builder builder) { this.mCarrierId = builder.mCarrierId; @@ -1910,6 +1911,7 @@ public class SatelliteStats { this.mSatelliteDataConsumedBytes = builder.mSatelliteDataConsumedBytes; this.mIsMultiSim = builder.mIsMultiSim; + this.mIsNbIotNtn = builder.mIsNbIotNtn; } public int getCarrierId() { @@ -1992,6 +1994,10 @@ public class SatelliteStats { return mIsMultiSim; } + public boolean isNbIotNtn() { + return mIsNbIotNtn; + } + /** * A builder class to create {@link CarrierRoamingSatelliteSessionParams} data structure * class @@ -2018,6 +2024,7 @@ public class SatelliteStats { SatelliteConstants.SATELLITE_ENTITLEMENT_SERVICE_POLICY_UNKNOWN; long mSatelliteDataConsumedBytes = 0L; private boolean mIsMultiSim = false; + private boolean mIsNbIotNtn = false; /** * Sets carrierId value of {@link CarrierRoamingSatelliteSession} atom @@ -2212,6 +2219,15 @@ public class SatelliteStats { return new SatelliteStats() .new CarrierRoamingSatelliteSessionParams(Builder.this); } + + /** + * Sets isNbIotNtn value of {@link CarrierRoamingSatelliteSession} atom, which indicates + * whether satellite service tech is NB-IoT-NTN or not + */ + public Builder setIsNbIotNtn(boolean isNbIotNtn) { + this.mIsNbIotNtn = isNbIotNtn; + return this; + } } @Override @@ -2238,6 +2254,7 @@ public class SatelliteStats { + ", serviceDataPolicy=" + mServiceDataPolicy + ", SatelliteDataConsumedBytes=" + mSatelliteDataConsumedBytes + ", isMultiSim=" + mIsMultiSim + + ", isNbIotNtn=" + mIsNbIotNtn + ")"; } } @@ -2259,6 +2276,7 @@ public class SatelliteStats { private static boolean sIsDeviceEntitled; private static boolean sIsMultiSim; private final int mCountOfSatelliteSessions; + private static boolean sIsNbIotNtn; private CarrierRoamingSatelliteControllerStatsParams(Builder builder) { this.mConfigDataSource = builder.mConfigDataSource; @@ -2296,6 +2314,11 @@ public class SatelliteStats { } this.mCountOfSatelliteSessions = builder.mCountOfSatelliteSessions; + + // isNbIotNtn value should be updated only when it is meaningful. + if (builder.mIsNbIotNtn.isPresent()) { + sIsNbIotNtn = builder.mIsNbIotNtn.get(); + } } public int getConfigDataSource() { @@ -2342,6 +2365,10 @@ public class SatelliteStats { return mCountOfSatelliteSessions; } + public boolean isNbIotNtn() { + return sIsNbIotNtn; + } + /** * A builder class to create {@link CarrierRoamingSatelliteControllerStatsParams} * data structure class @@ -2358,6 +2385,7 @@ public class SatelliteStats { private Optional<Boolean> mIsDeviceEntitled = Optional.empty(); private Optional<Boolean> mIsMultiSim = Optional.empty(); private int mCountOfSatelliteSessions = 0; + private Optional<Boolean> mIsNbIotNtn = Optional.empty(); /** * Sets configDataSource value of {@link CarrierRoamingSatelliteControllerStats} atom @@ -2452,6 +2480,12 @@ public class SatelliteStats { return this; } + /** Sets whether the device is in NB-NoT-NTN state or not. */ + public Builder setIsNbIotNtn(boolean isNbIotNtn) { + this.mIsNbIotNtn = Optional.of(isNbIotNtn); + return this; + } + /** * Returns CarrierRoamingSatelliteControllerStatsParams, which contains whole component * of {@link CarrierRoamingSatelliteControllerStats} atom @@ -2481,7 +2515,8 @@ public class SatelliteStats { && sCarrierId == that.getCarrierId() && sIsDeviceEntitled == that.isDeviceEntitled() && sIsMultiSim == that.isMultiSim() - && mCountOfSatelliteSessions == that.getCountOfSatelliteSessions(); + && mCountOfSatelliteSessions == that.getCountOfSatelliteSessions() + && sIsNbIotNtn == that.isNbIotNtn(); } @Override @@ -2490,7 +2525,7 @@ public class SatelliteStats { mCountOfSatelliteConfigUpdateRequest, mCountOfSatelliteNotificationDisplayed, sSatelliteSessionGapMinSec, sSatelliteSessionGapAvgSec, sSatelliteSessionGapMaxSec, sCarrierId, sIsDeviceEntitled, sIsMultiSim, - mCountOfSatelliteSessions); + mCountOfSatelliteSessions, sIsNbIotNtn); } @Override @@ -2510,6 +2545,7 @@ public class SatelliteStats { + ", isDeviceEntitled=" + sIsDeviceEntitled + ", isMultiSim=" + sIsMultiSim + ", countOfSatelliteSession=" + mCountOfSatelliteSessions + + ", isNbIotNtn=" + sIsNbIotNtn + ")"; } } @@ -3169,6 +3205,7 @@ public class SatelliteStats { proto.serviceDataPolicy = param.mServiceDataPolicy; proto.satelliteDataConsumedBytes = param.mSatelliteDataConsumedBytes; proto.isMultiSim = param.isMultiSim(); + proto.isNbIotNtn = param.isNbIotNtn(); if (DBG) logd("onCarrierRoamingSatelliteSessionMetrics: " + param); mAtomsStorage.addCarrierRoamingSatelliteSessionStats(proto); } @@ -3188,6 +3225,7 @@ public class SatelliteStats { proto.isDeviceEntitled = param.isDeviceEntitled(); proto.isMultiSim = param.isMultiSim(); proto.countOfSatelliteSessions = param.getCountOfSatelliteSessions(); + proto.isNbIotNtn = param.isNbIotNtn(); if (DBG) logd("onCarrierRoamingSatelliteControllerStatsMetrics: " + param); mAtomsStorage.addCarrierRoamingSatelliteControllerStats(proto); } diff --git a/src/java/com/android/internal/telephony/metrics/ServiceStateStats.java b/src/java/com/android/internal/telephony/metrics/ServiceStateStats.java index 1a909a0619..1d4c31693b 100644 --- a/src/java/com/android/internal/telephony/metrics/ServiceStateStats.java +++ b/src/java/com/android/internal/telephony/metrics/ServiceStateStats.java @@ -141,8 +141,13 @@ public class ServiceStateStats extends DataNetworkControllerCallback { newState.overrideVoiceService = mOverrideVoiceService.get(); newState.isDataEnabled = mPhone.getDataSettingsManager().isDataEnabled(); newState.isIwlanCrossSim = isCrossSimCallingRegistered(mPhone); - newState.isNtn = satelliteController != null - && satelliteController.isInSatelliteModeForCarrierRoaming(mPhone); + if (satelliteController != null) { + newState.isNtn = satelliteController.isInSatelliteModeForCarrierRoaming(mPhone); + newState.isNbIotNtn = satelliteController.isInCarrierRoamingNbIotNtn(mPhone); + } else { + newState.isNtn = false; + newState.isNbIotNtn = false; + } TimestampedServiceState prevState = mLastState.getAndSet(new TimestampedServiceState(newState, now)); addServiceStateAndSwitch( @@ -317,6 +322,7 @@ public class ServiceStateStats extends DataNetworkControllerCallback { copy.isDataEnabled = state.isDataEnabled; copy.isIwlanCrossSim = state.isIwlanCrossSim; copy.isNtn = state.isNtn; + copy.isNbIotNtn = state.isNbIotNtn; return copy; } diff --git a/src/java/com/android/internal/telephony/metrics/SmsStats.java b/src/java/com/android/internal/telephony/metrics/SmsStats.java index d8b519c100..fdbb20b25f 100644 --- a/src/java/com/android/internal/telephony/metrics/SmsStats.java +++ b/src/java/com/android/internal/telephony/metrics/SmsStats.java @@ -60,6 +60,7 @@ import com.android.internal.telephony.ServiceStateTracker; import com.android.internal.telephony.nano.PersistAtomsProto.IncomingSms; import com.android.internal.telephony.nano.PersistAtomsProto.OutgoingShortCodeSms; import com.android.internal.telephony.nano.PersistAtomsProto.OutgoingSms; +import com.android.internal.telephony.satellite.SatelliteController; import com.android.internal.telephony.satellite.metrics.CarrierRoamingSatelliteSessionStats; import com.android.telephony.Rlog; @@ -242,6 +243,7 @@ public class SmsStats { proto.isManagedProfile = mPhone.isManagedProfile(); proto.isNtn = isNonTerrestrialNetwork(); proto.isEmergency = isEmergency; + proto.isNbIotNtn = isNbIotNtn(mPhone); return proto; } @@ -272,6 +274,7 @@ public class SmsStats { proto.isEmergency = isEmergency; proto.isNtn = isNonTerrestrialNetwork(); proto.isMtSmsPolling = isMtSmsPolling; + proto.isNbIotNtn = isNbIotNtn(mPhone); return proto; } @@ -344,8 +347,8 @@ public class SmsStats { */ static int getSmsHashCode(OutgoingSms sms) { return Objects.hash(sms.smsFormat, sms.smsTech, sms.rat, sms.sendResult, sms.errorCode, - sms.isRoaming, sms.isFromDefaultApp, sms.simSlotIndex, sms.isMultiSim, - sms.isEsim, sms.carrierId); + sms.isRoaming, sms.isFromDefaultApp, sms.simSlotIndex, sms.isMultiSim, sms.isEsim, + sms.carrierId, sms.isEmergency, sms.isNtn, sms.isMtSmsPolling, sms.isNbIotNtn); } /** @@ -355,7 +358,8 @@ public class SmsStats { static int getSmsHashCode(IncomingSms sms) { return Objects.hash(sms.smsFormat, sms.smsTech, sms.rat, sms.smsType, sms.totalParts, sms.receivedParts, sms.blocked, sms.error, - sms.isRoaming, sms.simSlotIndex, sms.isMultiSim, sms.isEsim, sms.carrierId); + sms.isRoaming, sms.simSlotIndex, sms.isMultiSim, sms.isEsim, sms.carrierId, + sms.isNtn, sms.isNbIotNtn); } private int getPhoneId() { @@ -419,6 +423,10 @@ public class SmsStats { } } + private boolean isNbIotNtn(Phone phone) { + return SatelliteController.getInstance().isInCarrierRoamingNbIotNtn(phone); + } + private void loge(String format, Object... args) { Rlog.e(TAG, "[" + mPhone.getPhoneId() + "]" + String.format(format, args)); } diff --git a/src/java/com/android/internal/telephony/satellite/SatelliteController.java b/src/java/com/android/internal/telephony/satellite/SatelliteController.java index 1e69b2fb52..49eb3d9f29 100644 --- a/src/java/com/android/internal/telephony/satellite/SatelliteController.java +++ b/src/java/com/android/internal/telephony/satellite/SatelliteController.java @@ -4210,7 +4210,7 @@ public class SatelliteController extends Handler { * @return {@code true} if phone is in carrier roaming nb iot ntn mode, * else {@return false} */ - private boolean isInCarrierRoamingNbIotNtn(@Nullable Phone phone) { + public boolean isInCarrierRoamingNbIotNtn(@Nullable Phone phone) { if (!mFeatureFlags.carrierRoamingNbIotNtn()) { plogd("isInCarrierRoamingNbIotNtn: carrier roaming nb iot ntn " + "feature flag is disabled"); @@ -6394,7 +6394,7 @@ public class SatelliteController extends Handler { // Log satellite session end CarrierRoamingSatelliteSessionStats sessionStats = mCarrierRoamingSatelliteSessionStatsMap.get(subId); - sessionStats.onSessionEnd(); + sessionStats.onSessionEnd(subId); mCarrierRoamingSatelliteSessionStatsMap.remove(subId); mCarrierRoamingSatelliteControllerStats.onSessionEnd(subId); } diff --git a/src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java b/src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java index 318e8cf65e..3afaf9f654 100644 --- a/src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java +++ b/src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java @@ -720,6 +720,23 @@ public class SatelliteServiceUtils { return null; } + /** Determines whether the subscription is in carrier roaming NB-IoT NTN or not. */ + public static boolean isNbIotNtn(int subId) { + Phone phone = PhoneFactory.getPhone(SubscriptionManager.getPhoneId(subId)); + if (phone == null) { + logd("isNbIotNtn(): phone is null"); + return false; + } + + SatelliteController satelliteController = SatelliteController.getInstance(); + if (satelliteController == null) { + logd("isNbIotNtn(): satelliteController is null"); + return false; + } + + return satelliteController.isInCarrierRoamingNbIotNtn(phone); + } + private static void logd(@NonNull String log) { Rlog.d(TAG, log); } diff --git a/src/java/com/android/internal/telephony/satellite/metrics/CarrierRoamingSatelliteControllerStats.java b/src/java/com/android/internal/telephony/satellite/metrics/CarrierRoamingSatelliteControllerStats.java index 307ee62f77..0fbebf7217 100644 --- a/src/java/com/android/internal/telephony/satellite/metrics/CarrierRoamingSatelliteControllerStats.java +++ b/src/java/com/android/internal/telephony/satellite/metrics/CarrierRoamingSatelliteControllerStats.java @@ -27,6 +27,7 @@ import com.android.internal.telephony.Phone; import com.android.internal.telephony.PhoneFactory; import com.android.internal.telephony.metrics.SatelliteStats; import com.android.internal.telephony.satellite.SatelliteConstants; +import com.android.internal.telephony.satellite.SatelliteServiceUtils; import com.android.internal.telephony.subscription.SubscriptionManagerService; import java.util.ArrayList; @@ -74,6 +75,7 @@ public class CarrierRoamingSatelliteControllerStats { .setConfigDataSource(configDataSource) .setCarrierId(getCarrierIdFromSubscription(subId)) .setIsMultiSim(isMultiSim()) + .setIsNbIotNtn(SatelliteServiceUtils.isNbIotNtn(subId)) .build()); } @@ -84,6 +86,7 @@ public class CarrierRoamingSatelliteControllerStats { .setCountOfEntitlementStatusQueryRequest(ADD_COUNT) .setCarrierId(getCarrierIdFromSubscription(subId)) .setIsMultiSim(isMultiSim()) + .setIsNbIotNtn(SatelliteServiceUtils.isNbIotNtn(subId)) .build()); } @@ -103,6 +106,7 @@ public class CarrierRoamingSatelliteControllerStats { .setCountOfSatelliteNotificationDisplayed(ADD_COUNT) .setCarrierId(getCarrierIdFromSubscription(subId)) .setIsMultiSim(isMultiSim()) + .setIsNbIotNtn(SatelliteServiceUtils.isNbIotNtn(subId)) .build()); } @@ -122,6 +126,7 @@ public class CarrierRoamingSatelliteControllerStats { .setIsDeviceEntitled(isDeviceEntitled) .setCarrierId(getCarrierIdFromSubscription(subId)) .setIsMultiSim(isMultiSim()) + .setIsNbIotNtn(SatelliteServiceUtils.isNbIotNtn(subId)) .build()); } @@ -162,6 +167,7 @@ public class CarrierRoamingSatelliteControllerStats { .setSatelliteSessionGapMaxSec(satelliteSessionGapMaxSec) .setCarrierId(getCarrierIdFromSubscription(subId)) .setIsMultiSim(isMultiSim()) + .setIsNbIotNtn(SatelliteServiceUtils.isNbIotNtn(subId)) .build()); } diff --git a/src/java/com/android/internal/telephony/satellite/metrics/CarrierRoamingSatelliteSessionStats.java b/src/java/com/android/internal/telephony/satellite/metrics/CarrierRoamingSatelliteSessionStats.java index 6423d3ea7b..7958769676 100644 --- a/src/java/com/android/internal/telephony/satellite/metrics/CarrierRoamingSatelliteSessionStats.java +++ b/src/java/com/android/internal/telephony/satellite/metrics/CarrierRoamingSatelliteSessionStats.java @@ -37,6 +37,7 @@ import com.android.internal.telephony.MccTable; import com.android.internal.telephony.Phone; import com.android.internal.telephony.metrics.SatelliteStats; import com.android.internal.telephony.satellite.SatelliteConstants; +import com.android.internal.telephony.satellite.SatelliteServiceUtils; import com.android.internal.telephony.subscription.SubscriptionInfoInternal; import com.android.internal.telephony.subscription.SubscriptionManagerService; @@ -138,7 +139,7 @@ public class CarrierRoamingSatelliteSessionStats { } /** Log carrier roaming satellite session end */ - public void onSessionEnd() { + public void onSessionEnd(int subId) { onConnectionEnd(); long dataUsageOnSessionEndBytes = getDataUsage(); logd("update data consumed: " + dataUsageOnSessionEndBytes); @@ -148,7 +149,7 @@ public class CarrierRoamingSatelliteSessionStats { dataUsageOnSessionEndBytes - mDataUsageOnSessionStartBytes; } logd("satellite data consumed at session: " + mSatelliteDataConsumedBytes); - reportMetrics(); + reportMetrics(subId); mIsNtnRoamingInHomeCountry = false; mSupportedSatelliteServices = new int[0]; mServiceDataPolicy = SatelliteConstants.SATELLITE_ENTITLEMENT_SERVICE_POLICY_UNKNOWN; @@ -223,7 +224,7 @@ public class CarrierRoamingSatelliteSessionStats { } } - private void reportMetrics() { + private void reportMetrics(int subId) { int totalSatelliteModeTimeSec = mSessionStartTimeSec > 0 ? getElapsedRealtimeInSec() - mSessionStartTimeSec : 0; int numberOfSatelliteConnections = getNumberOfSatelliteConnections(); @@ -261,6 +262,7 @@ public class CarrierRoamingSatelliteSessionStats { .setServiceDataPolicy(mServiceDataPolicy) .setSatelliteDataConsumedBytes(mSatelliteDataConsumedBytes) .setIsMultiSim(isMultiSim) + .setIsNbIotNtn(SatelliteServiceUtils.isNbIotNtn(subId)) .build(); SatelliteStats.getInstance().onCarrierRoamingSatelliteSessionMetrics(params); logd("Supported satellite services: " + Arrays.toString(mSupportedSatelliteServices)); |