/*
 * Copyright (C) 2006 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.telephony.gsm;

import android.os.Bundle;
import android.telephony.CellLocation;

Represents the cell location on a GSM phone.
/** * Represents the cell location on a GSM phone. */
public class GsmCellLocation extends CellLocation { private int mLac; private int mCid; private int mPsc;
Empty constructor. Initializes the LAC and CID to -1.
/** * Empty constructor. Initializes the LAC and CID to -1. */
public GsmCellLocation() { mLac = -1; mCid = -1; mPsc = -1; }
Initialize the object from a bundle.
/** * Initialize the object from a bundle. */
public GsmCellLocation(Bundle bundle) { mLac = bundle.getInt("lac", -1); mCid = bundle.getInt("cid", -1); mPsc = bundle.getInt("psc", -1); }
Returns:gsm location area code, -1 if unknown, 0xffff max legal value
/** * @return gsm location area code, -1 if unknown, 0xffff max legal value */
public int getLac() { return mLac; }
Returns:gsm cell id, -1 if unknown, 0xffff max legal value
/** * @return gsm cell id, -1 if unknown, 0xffff max legal value */
public int getCid() { return mCid; }
On a UMTS network, returns the primary scrambling code of the serving cell.
Returns:primary scrambling code for UMTS, -1 if unknown or GSM
/** * On a UMTS network, returns the primary scrambling code of the serving * cell. * * @return primary scrambling code for UMTS, -1 if unknown or GSM */
public int getPsc() { return mPsc; }
Invalidate this object. The location area code and the cell id are set to -1.
/** * Invalidate this object. The location area code and the cell id are set to -1. */
@Override public void setStateInvalid() { mLac = -1; mCid = -1; mPsc = -1; }
Set the location area code and the cell id.
/** * Set the location area code and the cell id. */
public void setLacAndCid(int lac, int cid) { mLac = lac; mCid = cid; }
Set the primary scrambling code.
@hide
/** * Set the primary scrambling code. * @hide */
public void setPsc(int psc) { mPsc = psc; } @Override public int hashCode() { return mLac ^ mCid; } @Override public boolean equals(Object o) { GsmCellLocation s; try { s = (GsmCellLocation)o; } catch (ClassCastException ex) { return false; } if (o == null) { return false; } return equalsHandlesNulls(mLac, s.mLac) && equalsHandlesNulls(mCid, s.mCid) && equalsHandlesNulls(mPsc, s.mPsc); } @Override public String toString() { return "["+ mLac + "," + mCid + "," + mPsc + "]"; }
Test whether two objects hold the same data values or both are null
Params:
  • a – first obj
  • b – second obj
Returns:true if two objects equal or both are null
/** * Test whether two objects hold the same data values or both are null * * @param a first obj * @param b second obj * @return true if two objects equal or both are null */
private static boolean equalsHandlesNulls(Object a, Object b) { return (a == null) ? (b == null) : a.equals (b); }
Set intent notifier Bundle based on service state
Params:
  • m – intent notifier Bundle
/** * Set intent notifier Bundle based on service state * * @param m intent notifier Bundle */
public void fillInNotifierBundle(Bundle m) { m.putInt("lac", mLac); m.putInt("cid", mCid); m.putInt("psc", mPsc); }
@hide
/** * @hide */
public boolean isEmpty() { return (mLac == -1 && mCid == -1 && mPsc == -1); } }