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:
@@ -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.
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user