| /* |
| * 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; |
| |
| import android.os.Parcel; |
| import android.os.Parcelable; |
| |
| /** |
| * Represents the neighboring cell information, including |
| * Received Signal Strength and Cell ID location. |
| */ |
| public class NeighboringCellInfo implements Parcelable |
| { |
| /** |
| * Signal strength is not available |
| */ |
| static final public int UNKNOWN_RSSI = 99; |
| /** |
| * Cell location is not available |
| */ |
| static final public int UNKNOWN_CID = -1; |
| |
| private int mRssi; |
| private int mCid; |
| |
| /** |
| * Empty constructor. Initializes the RSSI and CID. |
| */ |
| public NeighboringCellInfo() { |
| mRssi = UNKNOWN_RSSI; |
| mCid = UNKNOWN_CID; |
| } |
| |
| /** |
| * Initialize the object from rssi and cid. |
| */ |
| public NeighboringCellInfo(int rssi, int cid) { |
| mRssi = rssi; |
| mCid = cid; |
| } |
| |
| /** |
| * Initialize the object from a parcel. |
| */ |
| public NeighboringCellInfo(Parcel in) { |
| mRssi = in.readInt(); |
| mCid = in.readInt(); |
| } |
| |
| /** |
| * @return received signal strength in "asu", ranging from 0 - 31, |
| * or UNKNOWN_RSSI if unknown |
| * |
| * For GSM, dBm = -113 + 2*asu, |
| * 0 means "-113 dBm or less" and 31 means "-51 dBm or greater" |
| */ |
| public int getRssi() { |
| return mRssi; |
| } |
| |
| /** |
| * @return cell id, UNKNOWN_CID if unknown, 0xffffffff max legal value |
| */ |
| public int getCid() { |
| return mCid; |
| } |
| |
| /** |
| * Set the cell id. |
| */ |
| public void setCid(int cid) { |
| mCid = cid; |
| } |
| |
| /** |
| * Set the signal strength of the cell. |
| */ |
| public void setRssi(int rssi) { |
| mRssi = rssi; |
| } |
| |
| @Override |
| public String toString() { |
| return "["+ ((mCid == UNKNOWN_CID) ? "/" : Integer.toHexString(mCid)) |
| + " at " + ((mRssi == UNKNOWN_RSSI)? "/" : mRssi) + "]"; |
| } |
| |
| public int describeContents() { |
| return 0; |
| } |
| |
| public void writeToParcel(Parcel dest, int flags) { |
| dest.writeInt(mRssi); |
| dest.writeInt(mCid); |
| } |
| |
| public static final Parcelable.Creator<NeighboringCellInfo> CREATOR |
| = new Parcelable.Creator<NeighboringCellInfo>() { |
| public NeighboringCellInfo createFromParcel(Parcel in) { |
| return new NeighboringCellInfo(in); |
| } |
| |
| public NeighboringCellInfo[] newArray(int size) { |
| return new NeighboringCellInfo[size]; |
| } |
| }; |
| } |
| |
| |