19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2006 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.telephony; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcel; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcelable; 219c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwangimport static android.telephony.TelephonyManager.NETWORK_TYPE_UNKNOWN; 229c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwangimport static android.telephony.TelephonyManager.NETWORK_TYPE_EDGE; 239c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwangimport static android.telephony.TelephonyManager.NETWORK_TYPE_GPRS; 249c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwangimport static android.telephony.TelephonyManager.NETWORK_TYPE_UMTS; 259c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwangimport static android.telephony.TelephonyManager.NETWORK_TYPE_HSDPA; 269c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwangimport static android.telephony.TelephonyManager.NETWORK_TYPE_HSUPA; 279c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwangimport static android.telephony.TelephonyManager.NETWORK_TYPE_HSPA; 289c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang 299c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 322563a3ac05dd3cf8a07203ae682c243f2e793137Wink Saville * Represents the neighboring cell information, including 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Received Signal Strength and Cell ID location. 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class NeighboringCellInfo implements Parcelable 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{ 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Signal strength is not available 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project static final public int UNKNOWN_RSSI = 99; 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Cell location is not available 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project static final public int UNKNOWN_CID = -1; 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 469c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang /** 479c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * In GSM, mRssi is the Received RSSI; 489c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * In UMTS, mRssi is the Level index of CPICH Received Signal Code Power 499c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang */ 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private int mRssi; 519c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang /** 529c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * CID in 16 bits format in GSM. Return UNKNOWN_CID in UMTS and CMDA. 539c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang */ 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private int mCid; 559c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang /** 569c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * LAC in 16 bits format in GSM. Return UNKNOWN_CID in UMTS and CMDA. 579c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang */ 589c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang private int mLac; 599c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang /** 609c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * Primary Scrambling Code in 9 bits format in UMTS 619c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * Return UNKNOWN_CID in GSM and CMDA. 629c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang */ 639c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang private int mPsc; 649c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang /** 659c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * Radio network type, value is one of following 669c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * TelephonyManager.NETWORK_TYPE_XXXXXX. 679c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang */ 689c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang private int mNetworkType; 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Empty constructor. Initializes the RSSI and CID. 729c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * 739c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * NeighboringCellInfo is one time shot for the neighboring cells based on 749c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * the radio network type at that moment. Its constructor needs radio network 759c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * type. 76cc6ff2bc6011294367d9a8c644f811449e952eb7Wink Saville * 77cc6ff2bc6011294367d9a8c644f811449e952eb7Wink Saville * @deprecated by {@link #NeighboringCellInfo(int, String, int)} 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7929e4a3c566f435c32f0b95e4ac8e8b33cac6fabaDianne Hackborn @Deprecated 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public NeighboringCellInfo() { 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRssi = UNKNOWN_RSSI; 829c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang mLac = UNKNOWN_CID; 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mCid = UNKNOWN_CID; 849c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang mPsc = UNKNOWN_CID; 859c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang mNetworkType = NETWORK_TYPE_UNKNOWN; 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Initialize the object from rssi and cid. 909c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * 919c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * NeighboringCellInfo is one time shot for the neighboring cells based on 929c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * the radio network type at that moment. Its constructor needs radio network 939c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * type. 94cc6ff2bc6011294367d9a8c644f811449e952eb7Wink Saville * 95cc6ff2bc6011294367d9a8c644f811449e952eb7Wink Saville * @deprecated by {@link #NeighboringCellInfo(int, String, int)} 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 9729e4a3c566f435c32f0b95e4ac8e8b33cac6fabaDianne Hackborn @Deprecated 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public NeighboringCellInfo(int rssi, int cid) { 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRssi = rssi; 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mCid = cid; 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1022563a3ac05dd3cf8a07203ae682c243f2e793137Wink Saville 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1049c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * Initialize the object from rssi, location string, and radioType 1059c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * radioType is one of following 1069c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * {@link TelephonyManager#NETWORK_TYPE_GPRS TelephonyManager.NETWORK_TYPE_GPRS}, 1079c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * {@link TelephonyManager#NETWORK_TYPE_EDGE TelephonyManager.NETWORK_TYPE_EDGE}, 1089c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * {@link TelephonyManager#NETWORK_TYPE_UMTS TelephonyManager.NETWORK_TYPE_UMTS}, 1099c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * {@link TelephonyManager#NETWORK_TYPE_HSDPA TelephonyManager.NETWORK_TYPE_HSDPA}, 1109c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * {@link TelephonyManager#NETWORK_TYPE_HSUPA TelephonyManager.NETWORK_TYPE_HSUPA}, 1119c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * and {@link TelephonyManager#NETWORK_TYPE_HSPA TelephonyManager.NETWORK_TYPE_HSPA}. 1129c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang */ 1139c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang public NeighboringCellInfo(int rssi, String location, int radioType) { 1149c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang // set default value 1159c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang mRssi = rssi; 1169c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang mNetworkType = NETWORK_TYPE_UNKNOWN; 1179c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang mPsc = UNKNOWN_CID; 1189c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang mLac = UNKNOWN_CID; 1199c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang mCid = UNKNOWN_CID; 1209c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang 1219c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang 1229c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang // pad location string with leading "0" 1239c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang int l = location.length(); 1249c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang if (l > 8) return; 1259c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang if (l < 8) { 1269c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang for (int i = 0; i < (8-l); i++) { 1279c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang location = "0" + location; 1289c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang } 1299c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang } 130962a990a45a2a9f9c3002064e71f9c2fed86acf1Robert Greenwalt // TODO - handle LTE and eHRPD (or find they can't be supported) 1319c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang try {// set LAC/CID or PSC based on radioType 1329c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang switch (radioType) { 1339c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang case NETWORK_TYPE_GPRS: 1349c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang case NETWORK_TYPE_EDGE: 1359c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang mNetworkType = radioType; 136c6dd77d04a94b7fa0659a099e5b85b70f5f2ea9fNaveen Kalla // check if 0xFFFFFFFF for UNKNOWN_CID 137c6dd77d04a94b7fa0659a099e5b85b70f5f2ea9fNaveen Kalla if (!location.equalsIgnoreCase("FFFFFFFF")) { 138c6dd77d04a94b7fa0659a099e5b85b70f5f2ea9fNaveen Kalla mCid = Integer.valueOf(location.substring(4), 16); 139c6dd77d04a94b7fa0659a099e5b85b70f5f2ea9fNaveen Kalla mLac = Integer.valueOf(location.substring(0, 4), 16); 140c6dd77d04a94b7fa0659a099e5b85b70f5f2ea9fNaveen Kalla } 1419c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang break; 1429c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang case NETWORK_TYPE_UMTS: 1439c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang case NETWORK_TYPE_HSDPA: 1449c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang case NETWORK_TYPE_HSUPA: 1459c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang case NETWORK_TYPE_HSPA: 1469c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang mNetworkType = radioType; 1479c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang mPsc = Integer.valueOf(location, 16); 1489c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang break; 1499c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang } 1509c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang } catch (NumberFormatException e) { 1519c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang // parsing location error 1529c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang mPsc = UNKNOWN_CID; 1539c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang mLac = UNKNOWN_CID; 1549c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang mCid = UNKNOWN_CID; 1559c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang mNetworkType = NETWORK_TYPE_UNKNOWN; 1569c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang } 1579c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang } 1589c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang 1599c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang /** 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Initialize the object from a parcel. 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public NeighboringCellInfo(Parcel in) { 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRssi = in.readInt(); 1649c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang mLac = in.readInt(); 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mCid = in.readInt(); 1669c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang mPsc = in.readInt(); 1679c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang mNetworkType = in.readInt(); 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1692563a3ac05dd3cf8a07203ae682c243f2e793137Wink Saville 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1719c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * @return received signal strength or UNKNOWN_RSSI if unknown 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1739c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * For GSM, it is in "asu" ranging from 0 to 31 (dBm = -113 + 2*asu) 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 0 means "-113 dBm or less" and 31 means "-51 dBm or greater" 1759c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * For UMTS, it is the Level index of CPICH RSCP defined in TS 25.125 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getRssi() { 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mRssi; 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1829c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * @return LAC in GSM, 0xffff max legal value 1839c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * UNKNOWN_CID if in UMTS or CMDA or unknown 1849c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang */ 1859c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang public int getLac() { 1869c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang return mLac; 1879c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang } 1889c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang 1899c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang /** 1909c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * @return cell id in GSM, 0xffff max legal value 1919c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * UNKNOWN_CID if in UMTS or CDMA or unknown 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getCid() { 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mCid; 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1989c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * @return Primary Scrambling Code in 9 bits format in UMTS, 0x1ff max value 1999c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * UNKNOWN_CID if in GSM or CMDA or unknown 2009c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang */ 2019c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang public int getPsc() { 2029c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang return mPsc; 2039c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang } 2049c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang 2059c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang /** 2069c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * @return Radio network type while neighboring cell location is stored. 2079c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * 2089c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * Return {@link TelephonyManager#NETWORK_TYPE_UNKNOWN TelephonyManager.NETWORK_TYPE_UNKNOWN} 2099c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * means that the location information is unavailable. 2109c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * 2119c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * Return {@link TelephonyManager#NETWORK_TYPE_GPRS TelephonyManager.NETWORK_TYPE_GPRS} or 2129c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * {@link TelephonyManager#NETWORK_TYPE_EDGE TelephonyManager.NETWORK_TYPE_EDGE} 2139c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * means that Neighboring Cell information is stored for GSM network, in 2149c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * which {@link NeighboringCellInfo#getLac NeighboringCellInfo.getLac} and 2159c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * {@link NeighboringCellInfo#getCid NeighboringCellInfo.getCid} should be 2169c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * called to access location. 2179c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * 2189c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * Return {@link TelephonyManager#NETWORK_TYPE_UMTS TelephonyManager.NETWORK_TYPE_UMTS}, 2199c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * {@link TelephonyManager#NETWORK_TYPE_HSDPA TelephonyManager.NETWORK_TYPE_HSDPA}, 2209c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * {@link TelephonyManager#NETWORK_TYPE_HSUPA TelephonyManager.NETWORK_TYPE_HSUPA}, 2219c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * or {@link TelephonyManager#NETWORK_TYPE_HSPA TelephonyManager.NETWORK_TYPE_HSPA} 2229c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * means that Neighboring Cell information is stored for UMTS network, in 2239c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * which {@link NeighboringCellInfo#getPsc NeighboringCellInfo.getPsc} 2249c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * should be called to access location. 2259c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang */ 2269c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang public int getNetworkType() { 2279c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang return mNetworkType; 2289c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang } 2299c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang /** 2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set the cell id. 2319c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * 2329c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * NeighboringCellInfo is a one time shot for the neighboring cells based on 2339c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * the radio network type at that moment. It shouldn't be changed after 2349c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * creation. 235cc6ff2bc6011294367d9a8c644f811449e952eb7Wink Saville * 236cc6ff2bc6011294367d9a8c644f811449e952eb7Wink Saville * @deprecated cid value passed as in location parameter passed to constructor 237cc6ff2bc6011294367d9a8c644f811449e952eb7Wink Saville * {@link #NeighboringCellInfo(int, String, int)} 2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 23929e4a3c566f435c32f0b95e4ac8e8b33cac6fabaDianne Hackborn @Deprecated 2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setCid(int cid) { 2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mCid = cid; 2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set the signal strength of the cell. 2469c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * 2479c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * NeighboringCellInfo is a one time shot for the neighboring cells based on 2489c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * the radio network type at that moment. It shouldn't be changed after 2499c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang * creation. 250cc6ff2bc6011294367d9a8c644f811449e952eb7Wink Saville * 251cc6ff2bc6011294367d9a8c644f811449e952eb7Wink Saville * @deprecated initial rssi value passed as parameter to constructor 252cc6ff2bc6011294367d9a8c644f811449e952eb7Wink Saville * {@link #NeighboringCellInfo(int, String, int)} 2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 25429e4a3c566f435c32f0b95e4ac8e8b33cac6fabaDianne Hackborn @Deprecated 2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setRssi(int rssi) { 2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRssi = rssi; 2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String toString() { 2619c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang StringBuilder sb = new StringBuilder(); 2629c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang 2639c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang sb.append("["); 2649c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang if (mPsc != UNKNOWN_CID) { 2659c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang sb.append(Integer.toHexString(mPsc)) 2669c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang .append("@").append(((mRssi == UNKNOWN_RSSI)? "-" : mRssi)); 2679c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang } else if(mLac != UNKNOWN_CID && mCid != UNKNOWN_CID) { 2689c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang sb.append(Integer.toHexString(mLac)) 2699c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang .append(Integer.toHexString(mCid)) 2709c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang .append("@").append(((mRssi == UNKNOWN_RSSI)? "-" : mRssi)); 2719c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang } 2729c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang sb.append("]"); 2739c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang 2749c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang return sb.toString(); 2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int describeContents() { 2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 0; 2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void writeToParcel(Parcel dest, int flags) { 2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dest.writeInt(mRssi); 2839c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang dest.writeInt(mLac); 2842563a3ac05dd3cf8a07203ae682c243f2e793137Wink Saville dest.writeInt(mCid); 2859c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang dest.writeInt(mPsc); 2869c118c80fd0a5416051f2a49f515301f2cf3fd6fjohnwang dest.writeInt(mNetworkType); 2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final Parcelable.Creator<NeighboringCellInfo> CREATOR 2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project = new Parcelable.Creator<NeighboringCellInfo>() { 2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public NeighboringCellInfo createFromParcel(Parcel in) { 2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new NeighboringCellInfo(in); 2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public NeighboringCellInfo[] newArray(int size) { 2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new NeighboringCellInfo[size]; 2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }; 299c6dd77d04a94b7fa0659a099e5b85b70f5f2ea9fNaveen Kalla} 300