OSDN Git Service

Make getCellLocation return null if not available.
authorJohn Wang <johnwang@google.com>
Tue, 9 Mar 2010 23:48:58 +0000 (15:48 -0800)
committerJohn Wang <johnwang@google.com>
Thu, 11 Mar 2010 21:53:46 +0000 (13:53 -0800)
For bug 2422284.

Check the cell location and return null if the location is not available.

Change-Id: Ie9a331b906a8253c9a9596365af8705dc03823ce

telephony/java/android/telephony/CellLocation.java
telephony/java/android/telephony/TelephonyManager.java
telephony/java/android/telephony/cdma/CdmaCellLocation.java
telephony/java/android/telephony/gsm/GsmCellLocation.java

index f763d3f..2edfc23 100644 (file)
@@ -79,6 +79,11 @@ public abstract class CellLocation {
     public abstract void fillInNotifierBundle(Bundle bundle);
 
     /**
+     * @hide
+     */
+    public abstract boolean isEmpty();
+
+    /**
      * Return a new CellLocation object representing an unknown
      * location, or null for unknown/none phone radio types.
      *
index 6685c18..a6b1d93 100644 (file)
@@ -203,7 +203,10 @@ public class TelephonyManager {
     public CellLocation getCellLocation() {
         try {
             Bundle bundle = getITelephony().getCellLocation();
-            return CellLocation.newFromBundle(bundle);
+            CellLocation cl = CellLocation.newFromBundle(bundle);
+            if (cl.isEmpty())
+                return null;
+            return cl;
         } catch (RemoteException ex) {
             return null;
         } catch (NullPointerException ex) {
index 2a0f8cd..84db830 100644 (file)
@@ -204,6 +204,18 @@ public class CdmaCellLocation extends CellLocation {
         bundleToFill.putInt("networkId", this.mNetworkId);
     }
 
+    /**
+     * @hide
+     */
+    public boolean isEmpty() {
+        return (this.mBaseStationId == -1 &&
+                this.mBaseStationLatitude == INVALID_LAT_LONG &&
+                this.mBaseStationLongitude == INVALID_LAT_LONG &&
+                this.mSystemId == -1 &&
+                this.mNetworkId == -1);
+    }
+
+
 }
 
 
index 0d4e0be..fa1f985 100644 (file)
@@ -119,4 +119,11 @@ public class GsmCellLocation extends CellLocation {
         m.putInt("lac", mLac);
         m.putInt("cid", mCid);
     }
+
+    /**
+     * @hide
+     */
+    public boolean isEmpty() {
+        return (mLac == -1 && mCid == -1);
+    }
 }