HardwareFailed hardware_failed = 72;
PhysicalDropDetected physical_drop_detected = 73;
ChargeCyclesReported charge_cycles_reported = 74;
+ MobileConnectionStateChanged mobile_connection_state_changed = 75;
+ MobileRadioTechnologyChanged mobile_radio_technology_changed = 76;
}
// Pulled events will start at field 10000.
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.
*
import android.server.ServerProtoEnums;
import android.service.batterystats.BatteryStatsServiceDumpProto;
import android.telephony.SignalStrength;
+import android.telephony.TelephonyManager;
import android.text.format.DateFormat;
import android.util.ArrayMap;
import android.util.LongSparseArray;
*/
public abstract int getMobileRadioActiveUnknownCount(int which);
- public static final int DATA_CONNECTION_NONE = SystemProto.DataConnection.NONE; // 0
- public static final int DATA_CONNECTION_GPRS = SystemProto.DataConnection.GPRS; // 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
+ public static final int DATA_CONNECTION_NONE = 0;
+ public static final int DATA_CONNECTION_OTHER = TelephonyManager.MAX_NETWORK_TYPE + 1;
static final String[] DATA_CONNECTION_NAMES = {
"none", "gprs", "edge", "umts", "cdma", "evdo_0", "evdo_A",
// Phone data connection (DATA_CONNECTION_TIME_DATA and DATA_CONNECTION_COUNT_DATA)
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);
- 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),
rawRealtimeUs, which);
proto.end(pdcToken);
}
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;
if (hasData) {
- switch (dataType) {
- case TelephonyManager.NETWORK_TYPE_EDGE:
- bin = DATA_CONNECTION_EDGE;
- break;
- 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 (dataType > 0 && dataType <= TelephonyManager.MAX_NETWORK_TYPE) {
+ bin = dataType;
+ } else {
+ bin = DATA_CONNECTION_OTHER;
}
}
if (DEBUG) Log.i(TAG, "Phone Data Connection -> " + dataType + " = " + hasData);
message DataConnection {
option (android.msg_privacy).dest = DEST_AUTOMATIC;
-
- enum Name {
- NONE = 0;
- GPRS = 1;
- EDGE = 2;
- UMTS = 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;
+ oneof type {
+ android.telephony.NetworkTypeEnum name = 1;
+ // If is_none is not set, then the name is a valid network type.
+ bool is_none = 2;
+ }
+ optional TimerProto total = 3;
};
repeated DataConnection data_connection = 8;
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.
enum SignalStrengthEnum {
SIGNAL_STRENGTH_NONE_OR_UNKNOWN = 0;
/*
* When adding a network type to the list below, make sure to add the correct icon to
* MobileSignalController.mapIconSets().
+ * Do not add negative types.
*/
/** 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 */
- public static final int NETWORK_TYPE_GPRS = 1;
+ public static final int NETWORK_TYPE_GPRS = TelephonyProtoEnums.NETWORK_TYPE_GPRS; // = 1.
/** 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 */
- 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*/
- 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*/
- 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*/
- 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*/
- public static final int NETWORK_TYPE_1xRTT = 7;
+ public static final int NETWORK_TYPE_1xRTT = TelephonyProtoEnums.NETWORK_TYPE_1XRTT; // = 7.
/** 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 */
- public static final int NETWORK_TYPE_HSUPA = 9;
+ public static final int NETWORK_TYPE_HSUPA = TelephonyProtoEnums.NETWORK_TYPE_HSUPA; // = 9.
/** 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 */
- 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*/
- 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 */
- public static final int NETWORK_TYPE_LTE = 13;
+ public static final int NETWORK_TYPE_LTE = TelephonyProtoEnums.NETWORK_TYPE_LTE; // = 13.
/** 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+ */
- public static final int NETWORK_TYPE_HSPAP = 15;
+ public static final int NETWORK_TYPE_HSPAP = TelephonyProtoEnums.NETWORK_TYPE_HSPAP; // = 15.
/** 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 */
- 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 */
- 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} */
- 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.
*/