/*
* Copyright (C) 2012 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;
/**
* Abstract base class for cell phone signal strength related information.
*/
public abstract class CellSignalStrength {
public static final int SIGNAL_STRENGTH_NONE_OR_UNKNOWN = 0;
public static final int SIGNAL_STRENGTH_POOR = 1;
public static final int SIGNAL_STRENGTH_MODERATE = 2;
public static final int SIGNAL_STRENGTH_GOOD = 3;
public static final int SIGNAL_STRENGTH_GREAT = 4;
/** @hide */
public static final int NUM_SIGNAL_STRENGTH_BINS = 5;
/** @hide */
public static final String[] SIGNAL_STRENGTH_NAMES = {
"none", "poor", "moderate", "good", "great"
};
/** @hide */
protected CellSignalStrength() {
}
/** @hide */
public abstract void setDefaultValues();
/**
* Get signal level as an int from 0..4
* <p>
* @see SIGNAL_STRENGTH_NONE_OR_UNKNOWN
* @see SIGNAL_STRENGTH_POOR
* @see SIGNAL_STRENGTH_MODERATE
* @see SIGNAL_STRENGTH_GOOD
* @see SIGNAL_STRENGTH_GREAT
*/
public abstract int getLevel();
/**
* Get the signal level as an asu value between 0..31, 99 is unknown
*/
public abstract int getAsuLevel();
/**
* Get the signal strength as dBm
*/
public abstract int getDbm();
/**
* Copies the CellSignalStrength.
*
* @return A deep copy of this class.
* @hide
*/
public abstract CellSignalStrength copy();
@Override
public abstract int hashCode();
@Override
public abstract boolean equals (Object o);
}