diff options
| author | Mike Lockwood <lockwood@android.com> | 2010-10-22 09:03:17 -0700 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2010-10-22 09:03:17 -0700 |
| commit | d78c8d8bb9516878eb5042a28d76bd6bcf4c6780 (patch) | |
| tree | f32dc7e2858e2f7d4fe60f388e086a5b1ea4fd1d /services | |
| parent | 7ba8c44ef7ba22d83a670e50314d69d0ddce1b9c (diff) | |
| parent | f6572e7ee413a87f5d243b3d44f798260ac1a18b (diff) | |
| download | frameworks_base-d78c8d8bb9516878eb5042a28d76bd6bcf4c6780.zip frameworks_base-d78c8d8bb9516878eb5042a28d76bd6bcf4c6780.tar.gz frameworks_base-d78c8d8bb9516878eb5042a28d76bd6bcf4c6780.tar.bz2 | |
am f6572e7e: Merge "GPS: Fix network type logic in requestRefLocation" into gingerbread
Merge commit 'f6572e7ee413a87f5d243b3d44f798260ac1a18b' into gingerbread-plus-aosp
* commit 'f6572e7ee413a87f5d243b3d44f798260ac1a18b':
GPS: Fix network type logic in requestRefLocation
Diffstat (limited to 'services')
| -rwxr-xr-x | services/java/com/android/server/location/GpsLocationProvider.java | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/services/java/com/android/server/location/GpsLocationProvider.java b/services/java/com/android/server/location/GpsLocationProvider.java index 4a6b5f4..755a228 100755 --- a/services/java/com/android/server/location/GpsLocationProvider.java +++ b/services/java/com/android/server/location/GpsLocationProvider.java @@ -1451,23 +1451,30 @@ public class GpsLocationProvider implements LocationProviderInterface { mContext.getSystemService(Context.TELEPHONY_SERVICE); if (phone.getPhoneType() == TelephonyManager.PHONE_TYPE_GSM) { GsmCellLocation gsm_cell = (GsmCellLocation) phone.getCellLocation(); - if ((gsm_cell != null) && (phone.getPhoneType() == TelephonyManager.PHONE_TYPE_GSM) - && (phone.getNetworkOperator().length() > 3)) { + if ((gsm_cell != null) && (phone.getPhoneType() == TelephonyManager.PHONE_TYPE_GSM) && + (phone.getNetworkOperator() != null) && + (phone.getNetworkOperator().length() > 3)) { int type; int mcc = Integer.parseInt(phone.getNetworkOperator().substring(0,3)); int mnc = Integer.parseInt(phone.getNetworkOperator().substring(3)); - if (phone.getNetworkType() == TelephonyManager.NETWORK_TYPE_UMTS) + int networkType = phone.getNetworkType(); + if (networkType == TelephonyManager.NETWORK_TYPE_UMTS + || networkType == TelephonyManager.NETWORK_TYPE_HSDPA + || networkType == TelephonyManager.NETWORK_TYPE_HSUPA + || networkType == TelephonyManager.NETWORK_TYPE_HSPA) { type = AGPS_REF_LOCATION_TYPE_UMTS_CELLID; - else + } else { type = AGPS_REF_LOCATION_TYPE_GSM_CELLID; + } native_agps_set_ref_location_cellid(type, mcc, mnc, gsm_cell.getLac(), gsm_cell.getCid()); - } - else + } else { Log.e(TAG,"Error getting cell location info."); + } } - else + else { Log.e(TAG,"CDMA not supported."); + } } private void sendMessage(int message, int arg, Object obj) { |
