Make getCellLocation return null if not available.

For bug 2422284.

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

Change-Id: Ie9a331b906a8253c9a9596365af8705dc03823ce
This commit is contained in:
John Wang
2010-03-09 15:48:58 -08:00
parent 3eda9799a1
commit 41a46718b3
4 changed files with 28 additions and 1 deletions

View File

@@ -78,6 +78,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.

View 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) {

View 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);
}
}

View 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);
}
}