1963db55d59a170f4b17ff907c96615a19ef6fe17John Wang/* 2963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * Copyright (C) 2008 The Android Open Source Project 3963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * 4963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * Licensed under the Apache License, Version 2.0 (the "License"); 5963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * you may not use this file except in compliance with the License. 6963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * You may obtain a copy of the License at 7963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * 8963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * http://www.apache.org/licenses/LICENSE-2.0 9963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * 10963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * Unless required by applicable law or agreed to in writing, software 11963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * distributed under the License is distributed on an "AS IS" BASIS, 12963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * See the License for the specific language governing permissions and 14963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * limitations under the License. 15963db55d59a170f4b17ff907c96615a19ef6fe17John Wang */ 16963db55d59a170f4b17ff907c96615a19ef6fe17John Wang 17963db55d59a170f4b17ff907c96615a19ef6fe17John Wangpackage android.telephony; 18963db55d59a170f4b17ff907c96615a19ef6fe17John Wang 19963db55d59a170f4b17ff907c96615a19ef6fe17John Wangimport android.os.Parcel; 20963db55d59a170f4b17ff907c96615a19ef6fe17John Wangimport android.os.Parcelable; 21963db55d59a170f4b17ff907c96615a19ef6fe17John Wang 22963db55d59a170f4b17ff907c96615a19ef6fe17John Wang/** 23963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * CellIdentity is to represent a unique CDMA cell 24963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * 25963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * @hide pending API review 26963db55d59a170f4b17ff907c96615a19ef6fe17John Wang */ 27963db55d59a170f4b17ff907c96615a19ef6fe17John Wangpublic final class CdmaCellIdentity extends CellIdentity implements Parcelable { 28963db55d59a170f4b17ff907c96615a19ef6fe17John Wang // Network Id 0..65535 29963db55d59a170f4b17ff907c96615a19ef6fe17John Wang private final int mNetworkId; 30963db55d59a170f4b17ff907c96615a19ef6fe17John Wang // CDMA System Id 0..32767 31963db55d59a170f4b17ff907c96615a19ef6fe17John Wang private final int mSystemId; 32963db55d59a170f4b17ff907c96615a19ef6fe17John Wang // Base Station Id 0..65535 33963db55d59a170f4b17ff907c96615a19ef6fe17John Wang private final int mBasestationId; 34963db55d59a170f4b17ff907c96615a19ef6fe17John Wang /** 35963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * Longitude is a decimal number as specified in 3GPP2 C.S0005-A v6.0. 36963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * It is represented in units of 0.25 seconds and ranges from -2592000 37963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * to 2592000, both values inclusive (corresponding to a range of -180 38963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * to +180 degrees). 39963db55d59a170f4b17ff907c96615a19ef6fe17John Wang */ 40963db55d59a170f4b17ff907c96615a19ef6fe17John Wang private final int mLongitude; 41963db55d59a170f4b17ff907c96615a19ef6fe17John Wang /** 42963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * Latitude is a decimal number as specified in 3GPP2 C.S0005-A v6.0. 43963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * It is represented in units of 0.25 seconds and ranges from -1296000 44963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * to 1296000, both values inclusive (corresponding to a range of -90 45963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * to +90 degrees). 46963db55d59a170f4b17ff907c96615a19ef6fe17John Wang */ 47963db55d59a170f4b17ff907c96615a19ef6fe17John Wang private final int mLatitude; 48963db55d59a170f4b17ff907c96615a19ef6fe17John Wang 49963db55d59a170f4b17ff907c96615a19ef6fe17John Wang /** 50963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * public constructor 51963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * @param nid Network Id 0..65535 52963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * @param sid CDMA System Id 0..32767 53963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * @param bid Base Station Id 0..65535 54963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * @param lon Longitude is a decimal number ranges from -2592000 55963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * to 2592000 56963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * @param lat Latitude is a decimal number ranges from -1296000 57963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * to 1296000 58963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * @param attr is comma separated “key=value” attribute pairs. 59963db55d59a170f4b17ff907c96615a19ef6fe17John Wang */ 60963db55d59a170f4b17ff907c96615a19ef6fe17John Wang public CdmaCellIdentity (int nid, int sid, 61963db55d59a170f4b17ff907c96615a19ef6fe17John Wang int bid, int lon, int lat, String attr) { 62963db55d59a170f4b17ff907c96615a19ef6fe17John Wang super(CELLID_TYPE_CDMA, attr); 63963db55d59a170f4b17ff907c96615a19ef6fe17John Wang mNetworkId = nid; 64963db55d59a170f4b17ff907c96615a19ef6fe17John Wang mSystemId = sid; 65963db55d59a170f4b17ff907c96615a19ef6fe17John Wang mBasestationId = bid; 66963db55d59a170f4b17ff907c96615a19ef6fe17John Wang mLongitude = lon; 67963db55d59a170f4b17ff907c96615a19ef6fe17John Wang mLatitude = lat; 68963db55d59a170f4b17ff907c96615a19ef6fe17John Wang } 69963db55d59a170f4b17ff907c96615a19ef6fe17John Wang 70963db55d59a170f4b17ff907c96615a19ef6fe17John Wang private CdmaCellIdentity(Parcel in) { 71963db55d59a170f4b17ff907c96615a19ef6fe17John Wang super(in); 72963db55d59a170f4b17ff907c96615a19ef6fe17John Wang mNetworkId = in.readInt(); 73963db55d59a170f4b17ff907c96615a19ef6fe17John Wang mSystemId = in.readInt(); 74963db55d59a170f4b17ff907c96615a19ef6fe17John Wang mBasestationId = in.readInt(); 75963db55d59a170f4b17ff907c96615a19ef6fe17John Wang mLongitude = in.readInt(); 76963db55d59a170f4b17ff907c96615a19ef6fe17John Wang mLatitude = in.readInt(); 77963db55d59a170f4b17ff907c96615a19ef6fe17John Wang } 78963db55d59a170f4b17ff907c96615a19ef6fe17John Wang 79963db55d59a170f4b17ff907c96615a19ef6fe17John Wang CdmaCellIdentity(CdmaCellIdentity cid) { 80963db55d59a170f4b17ff907c96615a19ef6fe17John Wang super(cid); 81963db55d59a170f4b17ff907c96615a19ef6fe17John Wang mNetworkId = cid.mNetworkId; 82963db55d59a170f4b17ff907c96615a19ef6fe17John Wang mSystemId = cid.mSystemId; 83963db55d59a170f4b17ff907c96615a19ef6fe17John Wang mBasestationId = cid.mBasestationId; 84963db55d59a170f4b17ff907c96615a19ef6fe17John Wang mLongitude = cid.mLongitude; 85963db55d59a170f4b17ff907c96615a19ef6fe17John Wang mLatitude = cid.mLatitude; 86963db55d59a170f4b17ff907c96615a19ef6fe17John Wang } 87963db55d59a170f4b17ff907c96615a19ef6fe17John Wang 88963db55d59a170f4b17ff907c96615a19ef6fe17John Wang /** 89963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * @return Network Id 0..65535 90963db55d59a170f4b17ff907c96615a19ef6fe17John Wang */ 91963db55d59a170f4b17ff907c96615a19ef6fe17John Wang public int getNetworkId() { 92963db55d59a170f4b17ff907c96615a19ef6fe17John Wang return mNetworkId; 93963db55d59a170f4b17ff907c96615a19ef6fe17John Wang } 94963db55d59a170f4b17ff907c96615a19ef6fe17John Wang 95963db55d59a170f4b17ff907c96615a19ef6fe17John Wang /** 96963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * @return System Id 0..32767 97963db55d59a170f4b17ff907c96615a19ef6fe17John Wang */ 98963db55d59a170f4b17ff907c96615a19ef6fe17John Wang public int getSystemId() { 99963db55d59a170f4b17ff907c96615a19ef6fe17John Wang return mSystemId; 100963db55d59a170f4b17ff907c96615a19ef6fe17John Wang } 101963db55d59a170f4b17ff907c96615a19ef6fe17John Wang 102963db55d59a170f4b17ff907c96615a19ef6fe17John Wang /** 103963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * @return Base Station Id 0..65535 104963db55d59a170f4b17ff907c96615a19ef6fe17John Wang */ 105963db55d59a170f4b17ff907c96615a19ef6fe17John Wang public int getBasestationId() { 106963db55d59a170f4b17ff907c96615a19ef6fe17John Wang return mBasestationId; 107963db55d59a170f4b17ff907c96615a19ef6fe17John Wang } 108963db55d59a170f4b17ff907c96615a19ef6fe17John Wang 109963db55d59a170f4b17ff907c96615a19ef6fe17John Wang /** 110963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * @return Base station longitude, which is a decimal number as 111963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * specified in 3GPP2 C.S0005-A v6.0. It is represented in units 112963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * of 0.25 seconds and ranges from -2592000 to 2592000, both 113963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * values inclusive (corresponding to a range of -180 114963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * to +180 degrees). 115963db55d59a170f4b17ff907c96615a19ef6fe17John Wang */ 116963db55d59a170f4b17ff907c96615a19ef6fe17John Wang public int getLongitude() { 117963db55d59a170f4b17ff907c96615a19ef6fe17John Wang return mLongitude; 118963db55d59a170f4b17ff907c96615a19ef6fe17John Wang } 119963db55d59a170f4b17ff907c96615a19ef6fe17John Wang 120963db55d59a170f4b17ff907c96615a19ef6fe17John Wang /** 121963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * @return Base station 122963db55d59a170f4b17ff907c96615a19ef6fe17John Wang */ 123963db55d59a170f4b17ff907c96615a19ef6fe17John Wang /** 124963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * @return Base station latitude, which is a decimal number as 125963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * specified in 3GPP2 C.S0005-A v6.0. It is represented in units 126963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * of 0.25 seconds and ranges from -1296000 to 1296000, both 127963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * values inclusive (corresponding to a range of -90 128963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * to +90 degrees). 129963db55d59a170f4b17ff907c96615a19ef6fe17John Wang */ 130963db55d59a170f4b17ff907c96615a19ef6fe17John Wang public int getLatitude() { 131963db55d59a170f4b17ff907c96615a19ef6fe17John Wang return mLatitude; 132963db55d59a170f4b17ff907c96615a19ef6fe17John Wang } 133963db55d59a170f4b17ff907c96615a19ef6fe17John Wang 134963db55d59a170f4b17ff907c96615a19ef6fe17John Wang /** Implement the Parcelable interface {@hide} */ 135963db55d59a170f4b17ff907c96615a19ef6fe17John Wang @Override 136963db55d59a170f4b17ff907c96615a19ef6fe17John Wang public int describeContents() { 137963db55d59a170f4b17ff907c96615a19ef6fe17John Wang return 0; 138963db55d59a170f4b17ff907c96615a19ef6fe17John Wang } 139963db55d59a170f4b17ff907c96615a19ef6fe17John Wang 140963db55d59a170f4b17ff907c96615a19ef6fe17John Wang /** Implement the Parcelable interface {@hide} */ 141963db55d59a170f4b17ff907c96615a19ef6fe17John Wang @Override 142963db55d59a170f4b17ff907c96615a19ef6fe17John Wang public void writeToParcel(Parcel dest, int flags) { 143963db55d59a170f4b17ff907c96615a19ef6fe17John Wang super.writeToParcel(dest, flags); 144963db55d59a170f4b17ff907c96615a19ef6fe17John Wang dest.writeInt(mNetworkId); 145963db55d59a170f4b17ff907c96615a19ef6fe17John Wang dest.writeInt(mSystemId); 146963db55d59a170f4b17ff907c96615a19ef6fe17John Wang dest.writeInt(mBasestationId); 147963db55d59a170f4b17ff907c96615a19ef6fe17John Wang dest.writeInt(mLongitude); 148963db55d59a170f4b17ff907c96615a19ef6fe17John Wang dest.writeInt(mLatitude); 149963db55d59a170f4b17ff907c96615a19ef6fe17John Wang } 150963db55d59a170f4b17ff907c96615a19ef6fe17John Wang 151963db55d59a170f4b17ff907c96615a19ef6fe17John Wang /** Implement the Parcelable interface {@hide} */ 152963db55d59a170f4b17ff907c96615a19ef6fe17John Wang public static final Creator<CdmaCellIdentity> CREATOR = 153963db55d59a170f4b17ff907c96615a19ef6fe17John Wang new Creator<CdmaCellIdentity>() { 154963db55d59a170f4b17ff907c96615a19ef6fe17John Wang @Override 155963db55d59a170f4b17ff907c96615a19ef6fe17John Wang public CdmaCellIdentity createFromParcel(Parcel in) { 156963db55d59a170f4b17ff907c96615a19ef6fe17John Wang return new CdmaCellIdentity(in); 157963db55d59a170f4b17ff907c96615a19ef6fe17John Wang } 158963db55d59a170f4b17ff907c96615a19ef6fe17John Wang 159963db55d59a170f4b17ff907c96615a19ef6fe17John Wang @Override 160963db55d59a170f4b17ff907c96615a19ef6fe17John Wang public CdmaCellIdentity[] newArray(int size) { 161963db55d59a170f4b17ff907c96615a19ef6fe17John Wang return new CdmaCellIdentity[size]; 162963db55d59a170f4b17ff907c96615a19ef6fe17John Wang } 163963db55d59a170f4b17ff907c96615a19ef6fe17John Wang }; 164963db55d59a170f4b17ff907c96615a19ef6fe17John Wang} 165