summaryrefslogtreecommitdiffstats
path: root/telephony
diff options
context:
space:
mode:
authorAndroid (Google) Code Review <android-gerrit@google.com>2009-09-11 18:26:02 -0400
committerAndroid (Google) Code Review <android-gerrit@google.com>2009-09-11 18:26:02 -0400
commitb942db35c52acc6842438b0de8f60d4de1e34e21 (patch)
tree6959ffbd8ca094fd06451f7a3abaa6daa4f0f443 /telephony
parent66c2a976705b62fe1721157e934b52d4a49de8f7 (diff)
parent5f1f26a7ffb3e1130108bc670960cb5368038a1b (diff)
downloadframeworks_base-b942db35c52acc6842438b0de8f60d4de1e34e21.zip
frameworks_base-b942db35c52acc6842438b0de8f60d4de1e34e21.tar.gz
frameworks_base-b942db35c52acc6842438b0de8f60d4de1e34e21.tar.bz2
Merge change 24773 into eclair
* changes: Fix NPE in TelephonyManager.
Diffstat (limited to 'telephony')
-rw-r--r--telephony/java/android/telephony/TelephonyManager.java97
1 files changed, 76 insertions, 21 deletions
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index a744486..8914ace 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -159,7 +159,8 @@ public class TelephonyManager {
/**
* Returns the software version number for the device, for example,
- * the IMEI/SV for GSM phones.
+ * the IMEI/SV for GSM phones. Return null if the software version is
+ * not available.
*
* <p>Requires Permission:
* {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
@@ -168,13 +169,15 @@ public class TelephonyManager {
try {
return getSubscriberInfo().getDeviceSvn();
} catch (RemoteException ex) {
+ return null;
+ } catch (NullPointerException ex) {
+ return null;
}
- return null;
}
/**
- * Returns the unique device ID, for example, the IMEI for GSM and the MEID for CDMA
- * phones.
+ * Returns the unique device ID, for example, the IMEI for GSM and the MEID
+ * for CDMA phones. Return null if device ID is not available.
*
* <p>Requires Permission:
* {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
@@ -183,12 +186,15 @@ public class TelephonyManager {
try {
return getSubscriberInfo().getDeviceId();
} catch (RemoteException ex) {
+ return null;
+ } catch (NullPointerException ex) {
+ return null;
}
- return null;
}
/**
* Returns the current location of the device.
+ * Return null if current location is not available.
*
* <p>Requires Permission:
* {@link android.Manifest.permission#ACCESS_COARSE_LOCATION ACCESS_COARSE_LOCATION} or
@@ -199,8 +205,10 @@ public class TelephonyManager {
Bundle bundle = getITelephony().getCellLocation();
return CellLocation.newFromBundle(bundle);
} catch (RemoteException ex) {
+ return null;
+ } catch (NullPointerException ex) {
+ return null;
}
- return null;
}
/**
@@ -216,6 +224,7 @@ public class TelephonyManager {
try {
getITelephony().enableLocationUpdates();
} catch (RemoteException ex) {
+ } catch (NullPointerException ex) {
}
}
@@ -232,6 +241,7 @@ public class TelephonyManager {
try {
getITelephony().disableLocationUpdates();
} catch (RemoteException ex) {
+ } catch (NullPointerException ex) {
}
}
@@ -247,9 +257,10 @@ public class TelephonyManager {
try {
return getITelephony().getNeighboringCellInfo();
} catch (RemoteException ex) {
+ return null;
+ } catch (NullPointerException ex) {
+ return null;
}
- return null;
-
}
/**
@@ -289,7 +300,11 @@ public class TelephonyManager {
// This can happen when the ITelephony interface is not up yet.
return getPhoneTypeFromProperty();
}
- } catch(RemoteException ex){
+ } catch (RemoteException ex) {
+ // This shouldn't happen in the normal case, as a backup we
+ // read from the system property.
+ return getPhoneTypeFromProperty();
+ } catch (NullPointerException ex) {
// This shouldn't happen in the normal case, as a backup we
// read from the system property.
return getPhoneTypeFromProperty();
@@ -418,9 +433,12 @@ public class TelephonyManager {
// This can happen when the ITelephony interface is not up yet.
return NETWORK_TYPE_UNKNOWN;
}
- } catch(RemoteException ex){
+ } catch(RemoteException ex) {
// This shouldn't happen in the normal case
return NETWORK_TYPE_UNKNOWN;
+ } catch (NullPointerException ex) {
+ // This could happen before phone restarts due to crashing
+ return NETWORK_TYPE_UNKNOWN;
}
}
@@ -489,6 +507,9 @@ public class TelephonyManager {
} catch (RemoteException ex) {
// Assume no ICC card if remote exception which shouldn't happen
return false;
+ } catch (NullPointerException ex) {
+ // This could happen before phone restarts due to crashing
+ return false;
}
}
@@ -556,7 +577,8 @@ public class TelephonyManager {
}
/**
- * Returns the serial number of the SIM, if applicable.
+ * Returns the serial number of the SIM, if applicable. Return null if it is
+ * unavailable.
* <p>
* Requires Permission:
* {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
@@ -565,8 +587,11 @@ public class TelephonyManager {
try {
return getSubscriberInfo().getIccSerialNumber();
} catch (RemoteException ex) {
+ return null;
+ } catch (NullPointerException ex) {
+ // This could happen before phone restarts due to crashing
+ return null;
}
- return null;
}
//
@@ -577,6 +602,7 @@ public class TelephonyManager {
/**
* Returns the unique subscriber ID, for example, the IMSI for a GSM phone.
+ * Return null if it is unavailable.
* <p>
* Requires Permission:
* {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
@@ -585,13 +611,16 @@ public class TelephonyManager {
try {
return getSubscriberInfo().getSubscriberId();
} catch (RemoteException ex) {
+ return null;
+ } catch (NullPointerException ex) {
+ // This could happen before phone restarts due to crashing
+ return null;
}
- return null;
}
/**
* Returns the phone number string for line 1, for example, the MSISDN
- * for a GSM phone.
+ * for a GSM phone. Return null if it is unavailable.
* <p>
* Requires Permission:
* {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
@@ -600,12 +629,16 @@ public class TelephonyManager {
try {
return getSubscriberInfo().getLine1Number();
} catch (RemoteException ex) {
+ return null;
+ } catch (NullPointerException ex) {
+ // This could happen before phone restarts due to crashing
+ return null;
}
- return null;
}
/**
* Returns the alphabetic identifier associated with the line 1 number.
+ * Return null if it is unavailable.
* <p>
* Requires Permission:
* {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
@@ -616,12 +649,15 @@ public class TelephonyManager {
try {
return getSubscriberInfo().getLine1AlphaTag();
} catch (RemoteException ex) {
+ return null;
+ } catch (NullPointerException ex) {
+ // This could happen before phone restarts due to crashing
+ return null;
}
- return null;
}
/**
- * Returns the voice mail number.
+ * Returns the voice mail number. Return null if it is unavailable.
* <p>
* Requires Permission:
* {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
@@ -630,12 +666,15 @@ public class TelephonyManager {
try {
return getSubscriberInfo().getVoiceMailNumber();
} catch (RemoteException ex) {
+ return null;
+ } catch (NullPointerException ex) {
+ // This could happen before phone restarts due to crashing
+ return null;
}
- return null;
}
/**
- * Returns the voice mail count.
+ * Returns the voice mail count. Return 0 if unavailable.
* <p>
* Requires Permission:
* {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
@@ -645,8 +684,11 @@ public class TelephonyManager {
try {
return getITelephony().getVoiceMessageCount();
} catch (RemoteException ex) {
+ return 0;
+ } catch (NullPointerException ex) {
+ // This could happen before phone restarts due to crashing
+ return 0;
}
- return 0;
}
/**
@@ -660,8 +702,11 @@ public class TelephonyManager {
try {
return getSubscriberInfo().getVoiceMailAlphaTag();
} catch (RemoteException ex) {
+ return null;
+ } catch (NullPointerException ex) {
+ // This could happen before phone restarts due to crashing
+ return null;
}
- return null;
}
private IPhoneSubInfo getSubscriberInfo() {
@@ -759,6 +804,8 @@ public class TelephonyManager {
} catch (RemoteException ex) {
// the phone process is restarting.
return DATA_DISCONNECTED;
+ } catch (NullPointerException ex) {
+ return DATA_DISCONNECTED;
}
}
@@ -802,6 +849,8 @@ public class TelephonyManager {
mRegistry.listen(pkgForDebug, listener.callback, events, notifyNow);
} catch (RemoteException ex) {
// system process dead
+ } catch (NullPointerException ex) {
+ // system process dead
}
}
@@ -816,6 +865,8 @@ public class TelephonyManager {
} catch (RemoteException ex) {
// the phone process is restarting.
return -1;
+ } catch (NullPointerException ex) {
+ return -1;
}
}
@@ -832,6 +883,8 @@ public class TelephonyManager {
} catch (RemoteException ex) {
// the phone process is restarting.
return -1;
+ } catch (NullPointerException ex) {
+ return -1;
}
}
@@ -846,6 +899,8 @@ public class TelephonyManager {
} catch (RemoteException ex) {
// the phone process is restarting.
return null;
+ } catch (NullPointerException ex) {
+ return null;
}
}
}