1b208a24cf521401912cfce16fce550a995cf1250Wink Saville/*
2b208a24cf521401912cfce16fce550a995cf1250Wink Saville * Copyright (C) 2012 The Android Open Source Project
3b208a24cf521401912cfce16fce550a995cf1250Wink Saville *
4b208a24cf521401912cfce16fce550a995cf1250Wink Saville * Licensed under the Apache License, Version 2.0 (the "License");
5b208a24cf521401912cfce16fce550a995cf1250Wink Saville * you may not use this file except in compliance with the License.
6b208a24cf521401912cfce16fce550a995cf1250Wink Saville * You may obtain a copy of the License at
7b208a24cf521401912cfce16fce550a995cf1250Wink Saville *
8b208a24cf521401912cfce16fce550a995cf1250Wink Saville *      http://www.apache.org/licenses/LICENSE-2.0
9b208a24cf521401912cfce16fce550a995cf1250Wink Saville *
10b208a24cf521401912cfce16fce550a995cf1250Wink Saville * Unless required by applicable law or agreed to in writing, software
11b208a24cf521401912cfce16fce550a995cf1250Wink Saville * distributed under the License is distributed on an "AS IS" BASIS,
12b208a24cf521401912cfce16fce550a995cf1250Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13b208a24cf521401912cfce16fce550a995cf1250Wink Saville * See the License for the specific language governing permissions and
14b208a24cf521401912cfce16fce550a995cf1250Wink Saville * limitations under the License.
15b208a24cf521401912cfce16fce550a995cf1250Wink Saville */
16b208a24cf521401912cfce16fce550a995cf1250Wink Saville
17b208a24cf521401912cfce16fce550a995cf1250Wink Savillepackage android.telephony;
18b208a24cf521401912cfce16fce550a995cf1250Wink Saville
19b208a24cf521401912cfce16fce550a995cf1250Wink Saville/**
20b208a24cf521401912cfce16fce550a995cf1250Wink Saville * Abstract base class for cell phone signal strength related information.
21b208a24cf521401912cfce16fce550a995cf1250Wink Saville */
22c6e4917adda19beb780386bcc26b652748b8ab13Wink Savillepublic abstract class CellSignalStrength {
23b208a24cf521401912cfce16fce550a995cf1250Wink Saville
24b208a24cf521401912cfce16fce550a995cf1250Wink Saville    public static final int SIGNAL_STRENGTH_NONE_OR_UNKNOWN = 0;
258e27050f0ebb27b920dfc918635130865dba0eacCasey Ho
26b208a24cf521401912cfce16fce550a995cf1250Wink Saville    public static final int SIGNAL_STRENGTH_POOR = 1;
278e27050f0ebb27b920dfc918635130865dba0eacCasey Ho
28b208a24cf521401912cfce16fce550a995cf1250Wink Saville    public static final int SIGNAL_STRENGTH_MODERATE = 2;
298e27050f0ebb27b920dfc918635130865dba0eacCasey Ho
30b208a24cf521401912cfce16fce550a995cf1250Wink Saville    public static final int SIGNAL_STRENGTH_GOOD = 3;
318e27050f0ebb27b920dfc918635130865dba0eacCasey Ho
32b208a24cf521401912cfce16fce550a995cf1250Wink Saville    public static final int SIGNAL_STRENGTH_GREAT = 4;
338e27050f0ebb27b920dfc918635130865dba0eacCasey Ho
34b208a24cf521401912cfce16fce550a995cf1250Wink Saville    /** @hide */
35b208a24cf521401912cfce16fce550a995cf1250Wink Saville    public static final int NUM_SIGNAL_STRENGTH_BINS = 5;
368e27050f0ebb27b920dfc918635130865dba0eacCasey Ho
37b208a24cf521401912cfce16fce550a995cf1250Wink Saville    /** @hide */
38b208a24cf521401912cfce16fce550a995cf1250Wink Saville    public static final String[] SIGNAL_STRENGTH_NAMES = {
39b208a24cf521401912cfce16fce550a995cf1250Wink Saville        "none", "poor", "moderate", "good", "great"
40b208a24cf521401912cfce16fce550a995cf1250Wink Saville    };
41b208a24cf521401912cfce16fce550a995cf1250Wink Saville
42b208a24cf521401912cfce16fce550a995cf1250Wink Saville    /** @hide */
433caf66d2ea63c75039daf43af30d3727e5ce6b58Wink Saville    protected CellSignalStrength() {
443caf66d2ea63c75039daf43af30d3727e5ce6b58Wink Saville    }
453caf66d2ea63c75039daf43af30d3727e5ce6b58Wink Saville
463caf66d2ea63c75039daf43af30d3727e5ce6b58Wink Saville    /** @hide */
47b208a24cf521401912cfce16fce550a995cf1250Wink Saville    public abstract void setDefaultValues();
48b208a24cf521401912cfce16fce550a995cf1250Wink Saville
49b208a24cf521401912cfce16fce550a995cf1250Wink Saville    /**
50b208a24cf521401912cfce16fce550a995cf1250Wink Saville     * Get signal level as an int from 0..4
518e27050f0ebb27b920dfc918635130865dba0eacCasey Ho     * <p>
528e27050f0ebb27b920dfc918635130865dba0eacCasey Ho     * @see SIGNAL_STRENGTH_NONE_OR_UNKNOWN
538e27050f0ebb27b920dfc918635130865dba0eacCasey Ho     * @see SIGNAL_STRENGTH_POOR
548e27050f0ebb27b920dfc918635130865dba0eacCasey Ho     * @see SIGNAL_STRENGTH_MODERATE
558e27050f0ebb27b920dfc918635130865dba0eacCasey Ho     * @see SIGNAL_STRENGTH_GOOD
568e27050f0ebb27b920dfc918635130865dba0eacCasey Ho     * @see SIGNAL_STRENGTH_GREAT
57b208a24cf521401912cfce16fce550a995cf1250Wink Saville     */
58b208a24cf521401912cfce16fce550a995cf1250Wink Saville    public abstract int getLevel();
59b208a24cf521401912cfce16fce550a995cf1250Wink Saville
60b208a24cf521401912cfce16fce550a995cf1250Wink Saville    /**
61b208a24cf521401912cfce16fce550a995cf1250Wink Saville     * Get the signal level as an asu value between 0..31, 99 is unknown
62b208a24cf521401912cfce16fce550a995cf1250Wink Saville     */
63b208a24cf521401912cfce16fce550a995cf1250Wink Saville    public abstract int getAsuLevel();
64b208a24cf521401912cfce16fce550a995cf1250Wink Saville
65b208a24cf521401912cfce16fce550a995cf1250Wink Saville    /**
66b208a24cf521401912cfce16fce550a995cf1250Wink Saville     * Get the signal strength as dBm
67b208a24cf521401912cfce16fce550a995cf1250Wink Saville     */
68b208a24cf521401912cfce16fce550a995cf1250Wink Saville    public abstract int getDbm();
69b208a24cf521401912cfce16fce550a995cf1250Wink Saville
70b208a24cf521401912cfce16fce550a995cf1250Wink Saville    /**
71b208a24cf521401912cfce16fce550a995cf1250Wink Saville     * Copies the CellSignalStrength.
72b208a24cf521401912cfce16fce550a995cf1250Wink Saville     *
73b208a24cf521401912cfce16fce550a995cf1250Wink Saville     * @return A deep copy of this class.
74b208a24cf521401912cfce16fce550a995cf1250Wink Saville     * @hide
75b208a24cf521401912cfce16fce550a995cf1250Wink Saville     */
76b208a24cf521401912cfce16fce550a995cf1250Wink Saville    public abstract CellSignalStrength copy();
77b208a24cf521401912cfce16fce550a995cf1250Wink Saville
78b208a24cf521401912cfce16fce550a995cf1250Wink Saville    @Override
79b208a24cf521401912cfce16fce550a995cf1250Wink Saville    public abstract int hashCode();
80b208a24cf521401912cfce16fce550a995cf1250Wink Saville
81b208a24cf521401912cfce16fce550a995cf1250Wink Saville    @Override
82b208a24cf521401912cfce16fce550a995cf1250Wink Saville    public abstract boolean equals (Object o);
83b208a24cf521401912cfce16fce550a995cf1250Wink Saville}
84