Merge "Atoms: Mobile Connection" into pi-dev

This commit is contained in:
TreeHugger Robot
2018-03-19 20:45:55 +00:00
committed by Android (Google) Code Review
6 changed files with 129 additions and 129 deletions

View File

@@ -115,6 +115,8 @@ message Atom {
HardwareFailed hardware_failed = 72; HardwareFailed hardware_failed = 72;
PhysicalDropDetected physical_drop_detected = 73; PhysicalDropDetected physical_drop_detected = 73;
ChargeCyclesReported charge_cycles_reported = 74; ChargeCyclesReported charge_cycles_reported = 74;
MobileConnectionStateChanged mobile_connection_state_changed = 75;
MobileRadioTechnologyChanged mobile_radio_technology_changed = 76;
} }
// Pulled events will start at field 10000. // Pulled events will start at field 10000.
@@ -911,6 +913,56 @@ message ResourceConfigurationChanged {
optional int32 uiMode = 17; optional int32 uiMode = 17;
} }
/**
* Logs changes in the connection state of the mobile radio.
*
* Logged from:
* frameworks/opt/telephony/src/java/com/android/internal/telephony/dataconnection/DataConnection.java
*/
message MobileConnectionStateChanged {
// States are from the state machine DataConnection.java.
enum State {
UNKNOWN = 0;
// The connection is inactive, or disconnected.
INACTIVE = 1;
// The connection is being activated, or connecting.
ACTIVATING = 2;
// The connection is active, or connected.
ACTIVE = 3;
// The connection is disconnecting.
DISCONNECTING = 4;
// The connection is disconnecting after creating a connection.
DISCONNECTION_ERROR_CREATING_CONNECTION = 5;
}
optional State state = 1;
// For multi-sim phones, this distinguishes between the sim cards.
optional int32 sim_slot_index = 2;
// Used to identify the connection. Starts at 0 and increments by 1 for
// every new network created. Resets whenever the device reboots.
optional int32 data_connection_id = 3;
// A bitmask for the capabilities of this connection.
// Eg. DEFAULT (internet), MMS, SUPL, DUN, IMS.
// Default value (if we have no information): 0
optional int64 capabilities = 4;
// If this connection has internet.
// This just checks if the DEFAULT bit of capabilities is set.
optional bool has_internet = 5;
}
/**
* Logs changes in mobile radio technology. eg: LTE, EDGE, CDMA.
*
* Logged from:
* frameworks/opt/telephony/src/java/com/android/internal/telephony/ServiceStateTracker.java
*/
message MobileRadioTechnologyChanged {
optional android.telephony.NetworkTypeEnum state = 1;
// For multi-sim phones, this distinguishes between the sim cards.
optional int32 sim_slot_index = 2;
}
/** /**
* Logs when Bluetooth is enabled and disabled. * Logs when Bluetooth is enabled and disabled.
* *

View File

@@ -23,6 +23,7 @@ import android.content.pm.ApplicationInfo;
import android.server.ServerProtoEnums; import android.server.ServerProtoEnums;
import android.service.batterystats.BatteryStatsServiceDumpProto; import android.service.batterystats.BatteryStatsServiceDumpProto;
import android.telephony.SignalStrength; import android.telephony.SignalStrength;
import android.telephony.TelephonyManager;
import android.text.format.DateFormat; import android.text.format.DateFormat;
import android.util.ArrayMap; import android.util.ArrayMap;
import android.util.LongSparseArray; import android.util.LongSparseArray;
@@ -2270,27 +2271,8 @@ public abstract class BatteryStats implements Parcelable {
*/ */
public abstract int getMobileRadioActiveUnknownCount(int which); public abstract int getMobileRadioActiveUnknownCount(int which);
public static final int DATA_CONNECTION_NONE = SystemProto.DataConnection.NONE; // 0 public static final int DATA_CONNECTION_NONE = 0;
public static final int DATA_CONNECTION_GPRS = SystemProto.DataConnection.GPRS; // 1 public static final int DATA_CONNECTION_OTHER = TelephonyManager.MAX_NETWORK_TYPE + 1;
public static final int DATA_CONNECTION_EDGE = SystemProto.DataConnection.EDGE; // 2
public static final int DATA_CONNECTION_UMTS = SystemProto.DataConnection.UMTS; // 3
public static final int DATA_CONNECTION_CDMA = SystemProto.DataConnection.CDMA; // 4
public static final int DATA_CONNECTION_EVDO_0 = SystemProto.DataConnection.EVDO_0; // 5
public static final int DATA_CONNECTION_EVDO_A = SystemProto.DataConnection.EVDO_A; // 6
public static final int DATA_CONNECTION_1xRTT = SystemProto.DataConnection.ONE_X_RTT; // 7
public static final int DATA_CONNECTION_HSDPA = SystemProto.DataConnection.HSDPA; // 8
public static final int DATA_CONNECTION_HSUPA = SystemProto.DataConnection.HSUPA; // 9
public static final int DATA_CONNECTION_HSPA = SystemProto.DataConnection.HSPA; // 10
public static final int DATA_CONNECTION_IDEN = SystemProto.DataConnection.IDEN; // 11
public static final int DATA_CONNECTION_EVDO_B = SystemProto.DataConnection.EVDO_B; // 12
public static final int DATA_CONNECTION_LTE = SystemProto.DataConnection.LTE; // 13
public static final int DATA_CONNECTION_EHRPD = SystemProto.DataConnection.EHRPD; // 14
public static final int DATA_CONNECTION_HSPAP = SystemProto.DataConnection.HSPAP; // 15
public static final int DATA_CONNECTION_GSM = SystemProto.DataConnection.GSM; // 16
public static final int DATA_CONNECTION_TD_SCDMA = SystemProto.DataConnection.TD_SCDMA; // 17
public static final int DATA_CONNECTION_IWLAN = SystemProto.DataConnection.IWLAN; // 18
public static final int DATA_CONNECTION_LTE_CA = SystemProto.DataConnection.LTE_CA; // 19
public static final int DATA_CONNECTION_OTHER = SystemProto.DataConnection.OTHER; // 20
static final String[] DATA_CONNECTION_NAMES = { static final String[] DATA_CONNECTION_NAMES = {
"none", "gprs", "edge", "umts", "cdma", "evdo_0", "evdo_A", "none", "gprs", "edge", "umts", "cdma", "evdo_0", "evdo_A",
@@ -7613,8 +7595,18 @@ public abstract class BatteryStats implements Parcelable {
// Phone data connection (DATA_CONNECTION_TIME_DATA and DATA_CONNECTION_COUNT_DATA) // Phone data connection (DATA_CONNECTION_TIME_DATA and DATA_CONNECTION_COUNT_DATA)
for (int i = 0; i < NUM_DATA_CONNECTION_TYPES; ++i) { for (int i = 0; i < NUM_DATA_CONNECTION_TYPES; ++i) {
// Map OTHER to TelephonyManager.NETWORK_TYPE_UNKNOWN and mark NONE as a boolean.
boolean isNone = (i == DATA_CONNECTION_NONE);
int telephonyNetworkType = i;
if (i == DATA_CONNECTION_OTHER) {
telephonyNetworkType = TelephonyManager.NETWORK_TYPE_UNKNOWN;
}
final long pdcToken = proto.start(SystemProto.DATA_CONNECTION); final long pdcToken = proto.start(SystemProto.DATA_CONNECTION);
proto.write(SystemProto.DataConnection.NAME, i); if (isNone) {
proto.write(SystemProto.DataConnection.IS_NONE, isNone);
} else {
proto.write(SystemProto.DataConnection.NAME, telephonyNetworkType);
}
dumpTimer(proto, SystemProto.DataConnection.TOTAL, getPhoneDataConnectionTimer(i), dumpTimer(proto, SystemProto.DataConnection.TOTAL, getPhoneDataConnectionTimer(i),
rawRealtimeUs, which); rawRealtimeUs, which);
proto.end(pdcToken); proto.end(pdcToken);

View File

@@ -5352,69 +5352,15 @@ public class BatteryStatsImpl extends BatteryStats {
} }
public void notePhoneDataConnectionStateLocked(int dataType, boolean hasData) { public void notePhoneDataConnectionStateLocked(int dataType, boolean hasData) {
// BatteryStats uses 0 to represent no network type.
// Telephony does not have a concept of no network type, and uses 0 to represent unknown.
// Unknown is included in DATA_CONNECTION_OTHER.
int bin = DATA_CONNECTION_NONE; int bin = DATA_CONNECTION_NONE;
if (hasData) { if (hasData) {
switch (dataType) { if (dataType > 0 && dataType <= TelephonyManager.MAX_NETWORK_TYPE) {
case TelephonyManager.NETWORK_TYPE_EDGE: bin = dataType;
bin = DATA_CONNECTION_EDGE; } else {
break; bin = DATA_CONNECTION_OTHER;
case TelephonyManager.NETWORK_TYPE_GPRS:
bin = DATA_CONNECTION_GPRS;
break;
case TelephonyManager.NETWORK_TYPE_UMTS:
bin = DATA_CONNECTION_UMTS;
break;
case TelephonyManager.NETWORK_TYPE_CDMA:
bin = DATA_CONNECTION_CDMA;
break;
case TelephonyManager.NETWORK_TYPE_EVDO_0:
bin = DATA_CONNECTION_EVDO_0;
break;
case TelephonyManager.NETWORK_TYPE_EVDO_A:
bin = DATA_CONNECTION_EVDO_A;
break;
case TelephonyManager.NETWORK_TYPE_1xRTT:
bin = DATA_CONNECTION_1xRTT;
break;
case TelephonyManager.NETWORK_TYPE_HSDPA:
bin = DATA_CONNECTION_HSDPA;
break;
case TelephonyManager.NETWORK_TYPE_HSUPA:
bin = DATA_CONNECTION_HSUPA;
break;
case TelephonyManager.NETWORK_TYPE_HSPA:
bin = DATA_CONNECTION_HSPA;
break;
case TelephonyManager.NETWORK_TYPE_IDEN:
bin = DATA_CONNECTION_IDEN;
break;
case TelephonyManager.NETWORK_TYPE_EVDO_B:
bin = DATA_CONNECTION_EVDO_B;
break;
case TelephonyManager.NETWORK_TYPE_LTE:
bin = DATA_CONNECTION_LTE;
break;
case TelephonyManager.NETWORK_TYPE_EHRPD:
bin = DATA_CONNECTION_EHRPD;
break;
case TelephonyManager.NETWORK_TYPE_HSPAP:
bin = DATA_CONNECTION_HSPAP;
break;
case TelephonyManager.NETWORK_TYPE_GSM:
bin = DATA_CONNECTION_GSM;
break;
case TelephonyManager.NETWORK_TYPE_TD_SCDMA:
bin = DATA_CONNECTION_TD_SCDMA;
break;
case TelephonyManager.NETWORK_TYPE_IWLAN:
bin = DATA_CONNECTION_IWLAN;
break;
case TelephonyManager.NETWORK_TYPE_LTE_CA:
bin = DATA_CONNECTION_LTE_CA;
break;
default:
bin = DATA_CONNECTION_OTHER;
break;
} }
} }
if (DEBUG) Log.i(TAG, "Phone Data Connection -> " + dataType + " = " + hasData); if (DEBUG) Log.i(TAG, "Phone Data Connection -> " + dataType + " = " + hasData);

View File

@@ -208,32 +208,12 @@ message SystemProto {
message DataConnection { message DataConnection {
option (android.msg_privacy).dest = DEST_AUTOMATIC; option (android.msg_privacy).dest = DEST_AUTOMATIC;
oneof type {
enum Name { android.telephony.NetworkTypeEnum name = 1;
NONE = 0; // If is_none is not set, then the name is a valid network type.
GPRS = 1; bool is_none = 2;
EDGE = 2; }
UMTS = 3; optional TimerProto total = 3;
CDMA = 4;
EVDO_0 = 5;
EVDO_A = 6;
ONE_X_RTT = 7; // 1xRTT.
HSDPA = 8;
HSUPA = 9;
HSPA = 10;
IDEN = 11;
EVDO_B = 12;
LTE = 13;
EHRPD = 14;
HSPAP = 15;
GSM = 16;
TD_SCDMA = 17;
IWLAN = 18;
LTE_CA = 19;
OTHER = 20;
};
optional Name name = 1;
optional TimerProto total = 2;
}; };
repeated DataConnection data_connection = 8; repeated DataConnection data_connection = 8;

View File

@@ -28,6 +28,31 @@ enum DataConnectionPowerStateEnum {
DATA_CONNECTION_POWER_STATE_UNKNOWN = 2147483647; // Java Integer.MAX_VALUE; DATA_CONNECTION_POWER_STATE_UNKNOWN = 2147483647; // Java Integer.MAX_VALUE;
} }
// Network type enums, primarily used by android/telephony/TelephonyManager.java.
// Do not add negative types.
enum NetworkTypeEnum {
NETWORK_TYPE_UNKNOWN = 0;
NETWORK_TYPE_GPRS = 1;
NETWORK_TYPE_EDGE = 2;
NETWORK_TYPE_UMTS = 3;
NETWORK_TYPE_CDMA = 4;
NETWORK_TYPE_EVDO_0 = 5;
NETWORK_TYPE_EVDO_A = 6;
NETWORK_TYPE_1XRTT = 7;
NETWORK_TYPE_HSDPA = 8;
NETWORK_TYPE_HSUPA = 9;
NETWORK_TYPE_HSPA = 10;
NETWORK_TYPE_IDEN = 11;
NETWORK_TYPE_EVDO_B = 12;
NETWORK_TYPE_LTE = 13;
NETWORK_TYPE_EHRPD = 14;
NETWORK_TYPE_HSPAP = 15;
NETWORK_TYPE_GSM = 16;
NETWORK_TYPE_TD_SCDMA = 17;
NETWORK_TYPE_IWLAN = 18;
NETWORK_TYPE_LTE_CA = 19;
}
// Signal strength levels, primarily used by android/telephony/SignalStrength.java. // Signal strength levels, primarily used by android/telephony/SignalStrength.java.
enum SignalStrengthEnum { enum SignalStrengthEnum {
SIGNAL_STRENGTH_NONE_OR_UNKNOWN = 0; SIGNAL_STRENGTH_NONE_OR_UNKNOWN = 0;

View File

@@ -1865,47 +1865,52 @@ public class TelephonyManager {
/* /*
* When adding a network type to the list below, make sure to add the correct icon to * When adding a network type to the list below, make sure to add the correct icon to
* MobileSignalController.mapIconSets(). * MobileSignalController.mapIconSets().
* Do not add negative types.
*/ */
/** Network type is unknown */ /** Network type is unknown */
public static final int NETWORK_TYPE_UNKNOWN = 0; public static final int NETWORK_TYPE_UNKNOWN = TelephonyProtoEnums.NETWORK_TYPE_UNKNOWN; // = 0.
/** Current network is GPRS */ /** Current network is GPRS */
public static final int NETWORK_TYPE_GPRS = 1; public static final int NETWORK_TYPE_GPRS = TelephonyProtoEnums.NETWORK_TYPE_GPRS; // = 1.
/** Current network is EDGE */ /** Current network is EDGE */
public static final int NETWORK_TYPE_EDGE = 2; public static final int NETWORK_TYPE_EDGE = TelephonyProtoEnums.NETWORK_TYPE_EDGE; // = 2.
/** Current network is UMTS */ /** Current network is UMTS */
public static final int NETWORK_TYPE_UMTS = 3; public static final int NETWORK_TYPE_UMTS = TelephonyProtoEnums.NETWORK_TYPE_UMTS; // = 3.
/** Current network is CDMA: Either IS95A or IS95B*/ /** Current network is CDMA: Either IS95A or IS95B*/
public static final int NETWORK_TYPE_CDMA = 4; public static final int NETWORK_TYPE_CDMA = TelephonyProtoEnums.NETWORK_TYPE_CDMA; // = 4.
/** Current network is EVDO revision 0*/ /** Current network is EVDO revision 0*/
public static final int NETWORK_TYPE_EVDO_0 = 5; public static final int NETWORK_TYPE_EVDO_0 = TelephonyProtoEnums.NETWORK_TYPE_EVDO_0; // = 5.
/** Current network is EVDO revision A*/ /** Current network is EVDO revision A*/
public static final int NETWORK_TYPE_EVDO_A = 6; public static final int NETWORK_TYPE_EVDO_A = TelephonyProtoEnums.NETWORK_TYPE_EVDO_A; // = 6.
/** Current network is 1xRTT*/ /** Current network is 1xRTT*/
public static final int NETWORK_TYPE_1xRTT = 7; public static final int NETWORK_TYPE_1xRTT = TelephonyProtoEnums.NETWORK_TYPE_1XRTT; // = 7.
/** Current network is HSDPA */ /** Current network is HSDPA */
public static final int NETWORK_TYPE_HSDPA = 8; public static final int NETWORK_TYPE_HSDPA = TelephonyProtoEnums.NETWORK_TYPE_HSDPA; // = 8.
/** Current network is HSUPA */ /** Current network is HSUPA */
public static final int NETWORK_TYPE_HSUPA = 9; public static final int NETWORK_TYPE_HSUPA = TelephonyProtoEnums.NETWORK_TYPE_HSUPA; // = 9.
/** Current network is HSPA */ /** Current network is HSPA */
public static final int NETWORK_TYPE_HSPA = 10; public static final int NETWORK_TYPE_HSPA = TelephonyProtoEnums.NETWORK_TYPE_HSPA; // = 10.
/** Current network is iDen */ /** Current network is iDen */
public static final int NETWORK_TYPE_IDEN = 11; public static final int NETWORK_TYPE_IDEN = TelephonyProtoEnums.NETWORK_TYPE_IDEN; // = 11.
/** Current network is EVDO revision B*/ /** Current network is EVDO revision B*/
public static final int NETWORK_TYPE_EVDO_B = 12; public static final int NETWORK_TYPE_EVDO_B = TelephonyProtoEnums.NETWORK_TYPE_EVDO_B; // = 12.
/** Current network is LTE */ /** Current network is LTE */
public static final int NETWORK_TYPE_LTE = 13; public static final int NETWORK_TYPE_LTE = TelephonyProtoEnums.NETWORK_TYPE_LTE; // = 13.
/** Current network is eHRPD */ /** Current network is eHRPD */
public static final int NETWORK_TYPE_EHRPD = 14; public static final int NETWORK_TYPE_EHRPD = TelephonyProtoEnums.NETWORK_TYPE_EHRPD; // = 14.
/** Current network is HSPA+ */ /** Current network is HSPA+ */
public static final int NETWORK_TYPE_HSPAP = 15; public static final int NETWORK_TYPE_HSPAP = TelephonyProtoEnums.NETWORK_TYPE_HSPAP; // = 15.
/** Current network is GSM */ /** Current network is GSM */
public static final int NETWORK_TYPE_GSM = 16; public static final int NETWORK_TYPE_GSM = TelephonyProtoEnums.NETWORK_TYPE_GSM; // = 16.
/** Current network is TD_SCDMA */ /** Current network is TD_SCDMA */
public static final int NETWORK_TYPE_TD_SCDMA = 17; public static final int NETWORK_TYPE_TD_SCDMA =
TelephonyProtoEnums.NETWORK_TYPE_TD_SCDMA; // = 17.
/** Current network is IWLAN */ /** Current network is IWLAN */
public static final int NETWORK_TYPE_IWLAN = 18; public static final int NETWORK_TYPE_IWLAN = TelephonyProtoEnums.NETWORK_TYPE_IWLAN; // = 18.
/** Current network is LTE_CA {@hide} */ /** Current network is LTE_CA {@hide} */
public static final int NETWORK_TYPE_LTE_CA = 19; public static final int NETWORK_TYPE_LTE_CA = TelephonyProtoEnums.NETWORK_TYPE_LTE_CA; // = 19.
/** Max network type number. Update as new types are added. Don't add negative types. {@hide} */
public static final int MAX_NETWORK_TYPE = NETWORK_TYPE_LTE_CA;
/** /**
* @return the NETWORK_TYPE_xxxx for current data connection. * @return the NETWORK_TYPE_xxxx for current data connection.
*/ */