Merge change 22318 into eclair

* changes:
  Framework changes to support HSDPA/HSUPA/HSPA HSDPA: High-Speed Downlink Packet Access HSUPA: High-Speend Uplink Packet Access HSPA:  High-Speed Packet Access
This commit is contained in:
Android (Google) Code Review
2009-08-21 13:43:01 -07:00
11 changed files with 93 additions and 23 deletions

View File

@@ -275,9 +275,21 @@ public class MobileDataStateTracker extends NetworkStateTracker {
case TelephonyManager.NETWORK_TYPE_UMTS:
networkTypeStr = "umts";
break;
case TelephonyManager.NETWORK_TYPE_HSDPA:
networkTypeStr = "hsdpa";
break;
case TelephonyManager.NETWORK_TYPE_HSUPA:
networkTypeStr = "hsupa";
break;
case TelephonyManager.NETWORK_TYPE_HSPA:
networkTypeStr = "hspa";
break;
case TelephonyManager.NETWORK_TYPE_CDMA:
networkTypeStr = "cdma";
break;
case TelephonyManager.NETWORK_TYPE_1xRTT:
networkTypeStr = "1xrtt";
break;
case TelephonyManager.NETWORK_TYPE_EVDO_0:
networkTypeStr = "evdo";
break;

Binary file not shown.

After

Width:  |  Height:  |  Size: 642 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 669 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 655 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 654 B

View File

@@ -262,6 +262,14 @@ public class StatusBarPolicy {
com.android.internal.R.drawable.stat_sys_data_out_e,
com.android.internal.R.drawable.stat_sys_data_inandout_e,
};
//3.5G
private static final int[] sDataNetType_h = new int[] {
com.android.internal.R.drawable.stat_sys_data_connected_h,
com.android.internal.R.drawable.stat_sys_data_in_h,
com.android.internal.R.drawable.stat_sys_data_out_h,
com.android.internal.R.drawable.stat_sys_data_inandout_h,
};
//CDMA
private static final int[] sDataNetType_evdo = new int[] {
com.android.internal.R.drawable.stat_sys_data_connected_evdo,
@@ -968,6 +976,11 @@ public class StatusBarPolicy {
case TelephonyManager.NETWORK_TYPE_UMTS:
mDataIconList = sDataNetType_3g;
break;
case TelephonyManager.NETWORK_TYPE_HSDPA:
case TelephonyManager.NETWORK_TYPE_HSUPA:
case TelephonyManager.NETWORK_TYPE_HSPA:
mDataIconList = sDataNetType_h;
break;
case TelephonyManager.NETWORK_TYPE_CDMA:
// display 1xRTT for IS95A/B
mDataIconList = this.sDataNetType_1xrtt;

View File

@@ -83,6 +83,12 @@ public class ServiceState implements Parcelable {
public static final int RADIO_TECHNOLOGY_EVDO_0 = 7;
/** @hide */
public static final int RADIO_TECHNOLOGY_EVDO_A = 8;
/** @hide */
public static final int RADIO_TECHNOLOGY_HSDPA = 9;
/** @hide */
public static final int RADIO_TECHNOLOGY_HSUPA = 10;
/** @hide */
public static final int RADIO_TECHNOLOGY_HSPA = 11;
/**
* Available registration states for GSM, UMTS and CDMA.
@@ -366,6 +372,15 @@ public class ServiceState implements Parcelable {
case 8:
radioTechnology = "EvDo rev. A";
break;
case 9:
radioTechnology = "HSDPA";
break;
case 10:
radioTechnology = "HSUPA";
break;
case 11:
radioTechnology = "HSPA";
break;
default:
Log.w(LOG_TAG, "mRadioTechnology variable out of range.");
break;

View File

@@ -382,6 +382,15 @@ public class TelephonyManager {
/** Current network is 1xRTT*/
/** @hide */
public static final int NETWORK_TYPE_1xRTT = 7;
/** Current network is HSDPA */
/** @hide */
public static final int NETWORK_TYPE_HSDPA = 8;
/** Current network is HSUPA */
/** @hide */
public static final int NETWORK_TYPE_HSUPA = 9;
/** Current network is HSPA */
/** @hide */
public static final int NETWORK_TYPE_HSPA = 10;
/**
* Returns a constant indicating the radio technology (network type)
@@ -392,35 +401,25 @@ public class TelephonyManager {
* @see #NETWORK_TYPE_GPRS
* @see #NETWORK_TYPE_EDGE
* @see #NETWORK_TYPE_UMTS
* @see #NETWORK_TYPE_HSDPA
* @see #NETWORK_TYPE_HSUPA
* @see #NETWORK_TYPE_HSPA
* @see #NETWORK_TYPE_CDMA
* @see #NETWORK_TYPE_EVDO_0
* @see #NETWORK_TYPE_EVDO_A
* @see #NETWORK_TYPE_1xRTT
*/
public int getNetworkType() {
String prop = SystemProperties.get(TelephonyProperties.PROPERTY_DATA_NETWORK_TYPE);
if ("GPRS".equals(prop)) {
return NETWORK_TYPE_GPRS;
}
else if ("EDGE".equals(prop)) {
return NETWORK_TYPE_EDGE;
}
else if ("UMTS".equals(prop)) {
return NETWORK_TYPE_UMTS;
}
else if ("CDMA".equals(prop)) {
return NETWORK_TYPE_CDMA;
}
else if ("CDMA - EvDo rev. 0".equals(prop)) {
return NETWORK_TYPE_EVDO_0;
try{
ITelephony telephony = getITelephony();
if (telephony != null) {
return telephony.getNetworkType();
} else {
// This can happen when the ITelephony interface is not up yet.
return NETWORK_TYPE_UNKNOWN;
}
else if ("CDMA - EvDo rev. A".equals(prop)) {
return NETWORK_TYPE_EVDO_A;
}
else if ("CDMA - 1xRTT".equals(prop)) {
return NETWORK_TYPE_1xRTT;
}
else {
} catch(RemoteException ex){
// This shouldn't happen in the normal case
return NETWORK_TYPE_UNKNOWN;
}
}
@@ -440,6 +439,12 @@ public class TelephonyManager {
return "EDGE";
case NETWORK_TYPE_UMTS:
return "UMTS";
case NETWORK_TYPE_HSDPA:
return "HSDPA";
case NETWORK_TYPE_HSUPA:
return "HSUPA";
case NETWORK_TYPE_HSPA:
return "HSPA";
case NETWORK_TYPE_CDMA:
return "CDMA";
case NETWORK_TYPE_EVDO_0:

View File

@@ -243,5 +243,9 @@ interface ITelephony {
*/
int getVoiceMessageCount();
/**
* Returns the network type
*/
int getNetworkType();
}

View File

@@ -34,6 +34,14 @@ public abstract class ServiceStateTracker extends Handler {
* 1 = GPRS only
* 2 = EDGE
* 3 = UMTS
* 4 = IS95A
* 5 = IS95B
* 6 = 1xRTT
* 7 = EvDo_0
* 8 = EvDo_A
* 9 = HSDPA
* 10 = HSUPA
* 11 = HSPA
*/
protected static final int DATA_ACCESS_UNKNOWN = 0;
protected static final int DATA_ACCESS_GPRS = 1;
@@ -44,6 +52,9 @@ public abstract class ServiceStateTracker extends Handler {
protected static final int DATA_ACCESS_CDMA_1xRTT = 6;
protected static final int DATA_ACCESS_CDMA_EvDo_0 = 7;
protected static final int DATA_ACCESS_CDMA_EvDo_A = 8;
protected static final int DATA_ACCESS_HSDPA = 9;
protected static final int DATA_ACCESS_HSUPA = 10;
protected static final int DATA_ACCESS_HSPA = 11;
//***** Instance Variables
protected CommandsInterface cm;

View File

@@ -677,6 +677,7 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
newGPRSState = regCodeToServiceState(regState);
newDataRoaming = regCodeIsRoaming(regState);
newNetworkType = type;
newSS.setRadioTechnology(type);
break;
case EVENT_POLL_STATE_OPERATOR:
@@ -810,6 +811,15 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
case DATA_ACCESS_UMTS:
ret = "UMTS";
break;
case DATA_ACCESS_HSDPA:
ret = "HSDPA";
break;
case DATA_ACCESS_HSUPA:
ret = "HSUPA";
break;
case DATA_ACCESS_HSPA:
ret = "HSPA";
break;
default:
Log.e(LOG_TAG, "Wrong network type: " + Integer.toString(type));
break;
@@ -1288,7 +1298,7 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
* that could support voice and data simultaniously.
*/
boolean isConcurrentVoiceAndData() {
return (networkType == DATA_ACCESS_UMTS);
return (networkType >= DATA_ACCESS_UMTS);
}
/**