19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007 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 com.android.internal.telephony;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.Context;
20767a662ecde33c3979bf02b793d392aca0403162Wink Savilleimport android.content.SharedPreferences;
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Handler;
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Message;
23767a662ecde33c3979bf02b793d392aca0403162Wink Savilleimport android.preference.PreferenceManager;
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.telephony.CellLocation;
251c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganeshimport android.telephony.PhoneStateListener;
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.telephony.ServiceState;
27e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Savilleimport android.telephony.SignalStrength;
28767a662ecde33c3979bf02b793d392aca0403162Wink Saville
29767a662ecde33c3979bf02b793d392aca0403162Wink Savilleimport com.android.internal.telephony.DataConnection;
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport com.android.internal.telephony.gsm.NetworkInfo;
3102722fbd77fa22f60ed3778b806b1e8f176b88c1Wink Savilleimport com.android.internal.telephony.gsm.GsmDataConnection;
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport com.android.internal.telephony.test.SimulatedRadioControl;
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.List;
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Internal interface used to control the phone; SDK developers cannot
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * obtain this interface.
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@hide}
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic interface Phone {
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /** used to enable additional debug messages */
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final boolean DEBUG_PHONE = true;
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
48767a662ecde33c3979bf02b793d392aca0403162Wink Saville
49767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The phone state. One of the following:<p>
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <ul>
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <li>IDLE = no phone activity</li>
53767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <li>RINGING = a phone call is ringing or call waiting.
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  In the latter case, another call is active as well</li>
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <li>OFFHOOK = The phone is off hook. At least one call
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * exists that is dialing, active or holding and no calls are
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * ringing or waiting.</li>
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * </ul>
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    enum State {
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        IDLE, RINGING, OFFHOOK;
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    };
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The state of a data connection.
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <ul>
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <li>CONNECTED = IP traffic should be available</li>
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <li>CONNECTING = Currently setting up data connection</li>
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <li>DISCONNECTED = IP not available</li>
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <li>SUSPENDED = connection is created but IP traffic is
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *                 temperately not available. i.e. voice call is in place
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *                 in 2G network</li>
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * </ul>
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    enum DataState {
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        CONNECTED, CONNECTING, DISCONNECTED, SUSPENDED;
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    };
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
79767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public enum DataActivityState {
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The state of a data activity.
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <ul>
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <li>NONE = No traffic</li>
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <li>DATAIN = Receiving IP ppp traffic</li>
859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <li>DATAOUT = Sending IP ppp traffic</li>
869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <li>DATAINANDOUT = Both receiving and sending IP ppp traffic</li>
87e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville         * <li>DORMANT = The data connection is still active,
88e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville                                     but physical link is down</li>
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * </ul>
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
91e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville        NONE, DATAIN, DATAOUT, DATAINANDOUT, DORMANT;
929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    };
939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    enum SuppService {
959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project      UNKNOWN, SWITCH, SEPARATE, TRANSFER, CONFERENCE, REJECT, HANGUP;
969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    };
979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String STATE_KEY = "state";
999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String PHONE_NAME_KEY = "phoneName";
1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String FAILURE_REASON_KEY = "reason";
1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String STATE_CHANGE_REASON_KEY = "reason";
10242acef37339afe6ac608c842f1637870ee9c4f6cRobert Greenwalt    static final String DATA_APN_TYPES_KEY = "apnType";
1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String DATA_APN_KEY = "apn";
10442acef37339afe6ac608c842f1637870ee9c4f6cRobert Greenwalt
1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String DATA_IFACE_NAME_KEY = "iface";
1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String NETWORK_UNAVAILABLE_KEY = "networkUnvailable";
107dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    static final String PHONE_IN_ECM_STATE = "phoneinECMState";
1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * APN types for data connections.  These are usage categories for an APN
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * entry.  One APN entry may support multiple APN types, eg, a single APN
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * may service regular internet traffic ("default") as well as MMS-specific
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * connections.<br/>
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * APN_TYPE_ALL is a special type to indicate that this APN entry can
1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * service all data connections.
1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String APN_TYPE_ALL = "*";
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /** APN type for default data traffic */
1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String APN_TYPE_DEFAULT = "default";
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /** APN type for MMS traffic */
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String APN_TYPE_MMS = "mms";
12242ad56ead40f6c5986bd2d298b1d36f42da489a1Mike Lockwood    /** APN type for SUPL assisted GPS */
12342ad56ead40f6c5986bd2d298b1d36f42da489a1Mike Lockwood    static final String APN_TYPE_SUPL = "supl";
12442acef37339afe6ac608c842f1637870ee9c4f6cRobert Greenwalt    /** APN type for DUN traffic */
12542acef37339afe6ac608c842f1637870ee9c4f6cRobert Greenwalt    static final String APN_TYPE_DUN = "dun";
12642acef37339afe6ac608c842f1637870ee9c4f6cRobert Greenwalt    /** APN type for HiPri traffic */
12742acef37339afe6ac608c842f1637870ee9c4f6cRobert Greenwalt    static final String APN_TYPE_HIPRI = "hipri";
1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // "Features" accessible through the connectivity manager
1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String FEATURE_ENABLE_MMS = "enableMMS";
13142ad56ead40f6c5986bd2d298b1d36f42da489a1Mike Lockwood    static final String FEATURE_ENABLE_SUPL = "enableSUPL";
13242acef37339afe6ac608c842f1637870ee9c4f6cRobert Greenwalt    static final String FEATURE_ENABLE_DUN = "enableDUN";
13342acef37339afe6ac608c842f1637870ee9c4f6cRobert Greenwalt    static final String FEATURE_ENABLE_HIPRI = "enableHIPRI";
1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Return codes for <code>enableApnType()</code>
1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int APN_ALREADY_ACTIVE     = 0;
1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int APN_REQUEST_STARTED    = 1;
1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int APN_TYPE_NOT_AVAILABLE = 2;
1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int APN_REQUEST_FAILED     = 3;
1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Optional reasons for disconnect and connect
1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_ROAMING_ON = "roamingOn";
1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_ROAMING_OFF = "roamingOff";
1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_DATA_DISABLED = "dataDisabled";
1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_DATA_ENABLED = "dataEnabled";
1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_GPRS_ATTACHED = "gprsAttached";
1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_GPRS_DETACHED = "gprsDetached";
153767a662ecde33c3979bf02b793d392aca0403162Wink Saville    static final String REASON_CDMA_DATA_ATTACHED = "cdmaDataAttached";
154767a662ecde33c3979bf02b793d392aca0403162Wink Saville    static final String REASON_CDMA_DATA_DETACHED = "cdmaDataDetached";
1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_APN_CHANGED = "apnChanged";
1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_APN_SWITCHED = "apnSwitched";
15789bd269975cae2d44c871c997b4eb0d42ba1f43cRobert Greenwalt    static final String REASON_APN_FAILED = "apnFailed";
1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_RESTORE_DEFAULT_APN = "restoreDefaultApn";
1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_RADIO_TURNED_OFF = "radioTurnedOff";
1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_PDP_RESET = "pdpReset";
1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_VOICE_CALL_ENDED = "2GVoiceCallEnded";
1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_VOICE_CALL_STARTED = "2GVoiceCallStarted";
1634df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project    static final String REASON_PS_RESTRICT_ENABLED = "psRestrictEnabled";
1644df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project    static final String REASON_PS_RESTRICT_DISABLED = "psRestrictDisabled";
165ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project    static final String REASON_SIM_LOADED = "simLoaded";
166e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
1674df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project    // Used for band mode selection methods
1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int BM_UNSPECIFIED = 0; // selected by baseband automatically
1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int BM_EURO_BAND   = 1; // GSM-900 / DCS-1800 / WCDMA-IMT-2000
1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int BM_US_BAND     = 2; // GSM-850 / PCS-1900 / WCDMA-850 / WCDMA-PCS-1900
1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int BM_JPN_BAND    = 3; // WCDMA-800 / WCDMA-IMT-2000
1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int BM_AUS_BAND    = 4; // GSM-900 / DCS-1800 / WCDMA-850 / WCDMA-IMT-2000
1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int BM_AUS2_BAND   = 5; // GSM-900 / DCS-1800 / WCDMA-850
1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int BM_BOUNDARY    = 6; // upper band boundary
1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1763cc97f8dbc22eff56f17f30e1633084af507eff4Tammo Spalink    // Radio Type
1773cc97f8dbc22eff56f17f30e1633084af507eff4Tammo Spalink    static final int PHONE_TYPE_NONE = RILConstants.NO_PHONE;
1783cc97f8dbc22eff56f17f30e1633084af507eff4Tammo Spalink    static final int PHONE_TYPE_GSM = RILConstants.GSM_PHONE;
1793cc97f8dbc22eff56f17f30e1633084af507eff4Tammo Spalink    static final int PHONE_TYPE_CDMA = RILConstants.CDMA_PHONE;
1803cc97f8dbc22eff56f17f30e1633084af507eff4Tammo Spalink
1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // Used for preferred network type
182767a662ecde33c3979bf02b793d392aca0403162Wink Saville    // Note NT_* substitute RILConstants.NETWORK_MODE_* above the Phone
183ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh    int NT_MODE_WCDMA_PREF   = RILConstants.NETWORK_MODE_WCDMA_PREF;
184ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh    int NT_MODE_GSM_ONLY     = RILConstants.NETWORK_MODE_GSM_ONLY;
185ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh    int NT_MODE_WCDMA_ONLY   = RILConstants.NETWORK_MODE_WCDMA_ONLY;
186ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh    int NT_MODE_GSM_UMTS     = RILConstants.NETWORK_MODE_GSM_UMTS;
187ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh
188ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh    int NT_MODE_CDMA         = RILConstants.NETWORK_MODE_CDMA;
189ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh
190ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh    int NT_MODE_CDMA_NO_EVDO = RILConstants.NETWORK_MODE_CDMA_NO_EVDO;
191ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh    int NT_MODE_EVDO_NO_CDMA = RILConstants.NETWORK_MODE_EVDO_NO_CDMA;
192ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh    int NT_MODE_GLOBAL       = RILConstants.NETWORK_MODE_GLOBAL;
193ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh
194ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh    int PREFERRED_NT_MODE    = RILConstants.PREFERRED_NETWORK_MODE;
195767a662ecde33c3979bf02b793d392aca0403162Wink Saville
196767a662ecde33c3979bf02b793d392aca0403162Wink Saville
197767a662ecde33c3979bf02b793d392aca0403162Wink Saville    // Used for CDMA roaming mode
198e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int CDMA_RM_HOME        = 0;  // Home Networks only, as defined in PRL
199e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int CDMA_RM_AFFILIATED  = 1;  // Roaming an Affiliated networks, as defined in PRL
200e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int CDMA_RM_ANY         = 2;  // Roaming on Any Network, as defined in PRL
201767a662ecde33c3979bf02b793d392aca0403162Wink Saville
202767a662ecde33c3979bf02b793d392aca0403162Wink Saville    // Used for CDMA subscription mode
203e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int CDMA_SUBSCRIPTION_RUIM_SIM = 0; // RUIM/SIM (default)
204e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int CDMA_SUBSCRIPTION_NV       = 1; // NV -> non-volatile memory
205e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
206e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int PREFERRED_CDMA_SUBSCRIPTION = CDMA_SUBSCRIPTION_NV;
207e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
208e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int TTY_MODE_OFF = 0;
209e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int TTY_MODE_FULL = 1;
210e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int TTY_MODE_HCO = 2;
211e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int TTY_MODE_VCO = 3;
212767a662ecde33c3979bf02b793d392aca0403162Wink Saville
213dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     /**
214dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * CDMA OTA PROVISION STATUS, the same as RIL_CDMA_OTA_Status in ril.h
215dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
216dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
217dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_SPL_UNLOCKED = 0;
218dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_SPC_RETRIES_EXCEEDED = 1;
219dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_A_KEY_EXCHANGED = 2;
220dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_SSD_UPDATED = 3;
221dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_NAM_DOWNLOADED = 4;
222dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_MDN_DOWNLOADED = 5;
223dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_IMSI_DOWNLOADED = 6;
224dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_PRL_DOWNLOADED = 7;
225dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_COMMITTED = 8;
226dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_OTAPA_STARTED = 9;
227dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_OTAPA_STOPPED = 10;
228dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_OTAPA_ABORTED = 11;
229dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
230dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
231767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
232767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Get the current ServiceState. Use
2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>registerForServiceStateChanged</code> to be informed of
2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * updates.
2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    ServiceState getServiceState();
2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get the current CellLocation.
2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    CellLocation getCellLocation();
242767a662ecde33c3979bf02b793d392aca0403162Wink Saville
2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get the current DataState. No change notification exists at this
245767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * interface -- use
246b111554883ef3d4101c2f3fe9d630f5c1d3bbf7aMarco Nelissen     * {@link com.android.telephony.PhoneStateListener PhoneStateListener}
247767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * instead.
2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    DataState getDataConnectionState();
2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get the current DataActivityState. No change notification exists at this
2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * interface -- use
2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link TelephonyManager} instead.
2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    DataActivityState getDataActivityState();
257767a662ecde33c3979bf02b793d392aca0403162Wink Saville
2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Gets the context for the phone, as set at initialization time.
2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Context getContext();
2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
263767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
264767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Disables the DNS check (i.e., allows "0.0.0.0").
265767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Useful for lab testing environment.
266767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param b true disables the check, false enables.
267767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
268767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void disableDnsCheck(boolean b);
269767a662ecde33c3979bf02b793d392aca0403162Wink Saville
270767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
271767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Returns true if the DNS check is currently disabled.
272767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
273767a662ecde33c3979bf02b793d392aca0403162Wink Saville    boolean isDnsCheckDisabled();
274767a662ecde33c3979bf02b793d392aca0403162Wink Saville
275767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get current coarse-grained voice call state.
2771c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * Use {@link #registerForPreciseCallStateChanged(Handler, int, Object)
2781c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * registerForPreciseCallStateChanged()} for change notification. <p>
2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If the phone has an active call and call waiting occurs,
2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * then the phone state is RINGING not OFFHOOK
281767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <strong>Note:</strong>
2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * This registration point provides notification of finer-grained
2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * changes.<p>
2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    State getState();
2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
288767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns a string identifier for this phone interface for parties
2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  outside the phone app process.
2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  @return The string name.
2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getPhoneName();
2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
295767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
2963cc97f8dbc22eff56f17f30e1633084af507eff4Tammo Spalink     * Return a numerical identifier for the phone radio interface.
2973cc97f8dbc22eff56f17f30e1633084af507eff4Tammo Spalink     * @return PHONE_TYPE_XXX as defined above.
2983cc97f8dbc22eff56f17f30e1633084af507eff4Tammo Spalink     */
2993cc97f8dbc22eff56f17f30e1633084af507eff4Tammo Spalink    int getPhoneType();
3003cc97f8dbc22eff56f17f30e1633084af507eff4Tammo Spalink
3013cc97f8dbc22eff56f17f30e1633084af507eff4Tammo Spalink    /**
3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns an array of string identifiers for the APN types serviced by the
3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * currently active or last connected APN.
3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  @return The string array.
3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String[] getActiveApnTypes();
307767a662ecde33c3979bf02b793d392aca0403162Wink Saville
308767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns a string identifier for currently active or last connected APN.
3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  @return The string name.
3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getActiveApn();
313767a662ecde33c3979bf02b793d392aca0403162Wink Saville
314767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
315dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Get current signal strength. No change notification available on this
316dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * interface. Use <code>PhoneStateNotifier</code> or an equivalent.
317dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * An ASU is 0-31 or -1 if unknown (for GSM, dBm = -113 - 2 * asu).
318dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * The following special values are defined:</p>
319dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * <ul><li>0 means "-113 dBm or less".</li>
320dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * <li>31 means "-51 dBm or greater".</li></ul>
321767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
322e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * @return Current signal strength as SignalStrength
3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
324e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    SignalStrength getSignalStrength();
325767a662ecde33c3979bf02b793d392aca0403162Wink Saville
326767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Notifies when a previously untracked non-ringing/waiting connection has appeared.
3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * This is likely due to some other entity (eg, SIM card application) initiating a call.
3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForUnknownConnection(Handler h, int what, Object obj);
3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Unregisters for unknown connection notifications.
3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForUnknownConnection(Handler h);
3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
337767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
3381c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * Register for getting notifications for change in the Call State {@link Call.State}
3391c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * This is called PreciseCallState because the call state is more precise than the
3401c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link Phone.State} which can be obtained using the {@link PhoneStateListener}
3411c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     *
3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Resulting events will have an AsyncResult in <code>Message.obj</code>.
3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * AsyncResult.userData will be set to the obj argument here.
3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The <em>h</em> parameter is held only by a weak reference.
3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3461c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh    void registerForPreciseCallStateChanged(Handler h, int what, Object obj);
3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
349767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for voice call state change notifications.
3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently.
3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3521c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh    void unregisterForPreciseCallStateChanged(Handler h);
3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
355767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Notifies when a new ringing or waiting connection has appeared.<p>
3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Messages received from this:
3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Message.obj will be an AsyncResult
3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  AsyncResult.userObj = obj
3619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  AsyncResult.result = a Connection. <p>
3629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Please check Connection.isRinging() to make sure the Connection
3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  has not dropped since this message was posted.
364767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *  If Connection.isRinging() is true, then
3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *   Connection.getCall() == Phone.getRingingCall()
3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForNewRingingConnection(Handler h, int what, Object obj);
3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
370767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for new ringing connection notification.
3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForNewRingingConnection(Handler h);
3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
376767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Notifies when an incoming call rings.<p>
3789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
3799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Messages received from this:
3809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Message.obj will be an AsyncResult
3819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  AsyncResult.userObj = obj
3829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  AsyncResult.result = a Connection. <p>
3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForIncomingRing(Handler h, int what, Object obj);
385767a662ecde33c3979bf02b793d392aca0403162Wink Saville
3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
387767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for ring notification.
3889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
3899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
390767a662ecde33c3979bf02b793d392aca0403162Wink Saville
3919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForIncomingRing(Handler h);
392767a662ecde33c3979bf02b793d392aca0403162Wink Saville
393bbd754b8fe7563234b5c4c8d1425a7417337f2f2John Wang    /**
394bbd754b8fe7563234b5c4c8d1425a7417337f2f2John Wang     * Notifies when out-band ringback tone is needed.<p>
395bbd754b8fe7563234b5c4c8d1425a7417337f2f2John Wang     *
396bbd754b8fe7563234b5c4c8d1425a7417337f2f2John Wang     *  Messages received from this:
397bbd754b8fe7563234b5c4c8d1425a7417337f2f2John Wang     *  Message.obj will be an AsyncResult
398bbd754b8fe7563234b5c4c8d1425a7417337f2f2John Wang     *  AsyncResult.userObj = obj
399bbd754b8fe7563234b5c4c8d1425a7417337f2f2John Wang     *  AsyncResult.result = boolean, true to start play ringback tone
400bbd754b8fe7563234b5c4c8d1425a7417337f2f2John Wang     *                       and false to stop. <p>
401bbd754b8fe7563234b5c4c8d1425a7417337f2f2John Wang     */
402bbd754b8fe7563234b5c4c8d1425a7417337f2f2John Wang    void registerForRingbackTone(Handler h, int what, Object obj);
403bbd754b8fe7563234b5c4c8d1425a7417337f2f2John Wang
404bbd754b8fe7563234b5c4c8d1425a7417337f2f2John Wang    /**
405bbd754b8fe7563234b5c4c8d1425a7417337f2f2John Wang     * Unregisters for ringback tone notification.
406bbd754b8fe7563234b5c4c8d1425a7417337f2f2John Wang     */
407bbd754b8fe7563234b5c4c8d1425a7417337f2f2John Wang
408bbd754b8fe7563234b5c4c8d1425a7417337f2f2John Wang    void unregisterForRingbackTone(Handler h);
409bbd754b8fe7563234b5c4c8d1425a7417337f2f2John Wang
4101ccc41ed938ff005ae3d621292580a90601242caJohn Wang    /**
4111ccc41ed938ff005ae3d621292580a90601242caJohn Wang     * Registers the handler to reset the uplink mute state to get
4121ccc41ed938ff005ae3d621292580a90601242caJohn Wang     * uplink audio.
4131ccc41ed938ff005ae3d621292580a90601242caJohn Wang     */
4141ccc41ed938ff005ae3d621292580a90601242caJohn Wang    void registerForResendIncallMute(Handler h, int what, Object obj);
4151ccc41ed938ff005ae3d621292580a90601242caJohn Wang
4161ccc41ed938ff005ae3d621292580a90601242caJohn Wang    /**
4171ccc41ed938ff005ae3d621292580a90601242caJohn Wang     * Unregisters for resend incall mute notifications.
4181ccc41ed938ff005ae3d621292580a90601242caJohn Wang     */
4191ccc41ed938ff005ae3d621292580a90601242caJohn Wang    void unregisterForResendIncallMute(Handler h);
420767a662ecde33c3979bf02b793d392aca0403162Wink Saville
421767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
4229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Notifies when a voice connection has disconnected, either due to local
4239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * or remote hangup or error.
424767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
4259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Messages received from this will have the following members:<p>
4269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  <ul><li>Message.obj will be an AsyncResult</li>
4279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  <li>AsyncResult.userObj = obj</li>
428767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *  <li>AsyncResult.result = a Connection object that is
4299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  no longer connected.</li></ul>
4309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForDisconnect(Handler h, int what, Object obj);
4329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
434767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for voice disconnection notification.
4359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
4369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForDisconnect(Handler h);
4389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
4419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Register for notifications of initiation of a new MMI code request.
4429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * MMI codes for GSM are discussed in 3GPP TS 22.030.<p>
4439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
4449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Example: If Phone.dial is called with "*#31#", then the app will
4459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * be notified here.<p>
4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The returned <code>Message.obj</code> will contain an AsyncResult.
4489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>obj.result</code> will be an "MmiCode" object.
4509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForMmiInitiate(Handler h, int what, Object obj);
4529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
454767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for new MMI initiate notification.
4559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
4569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForMmiInitiate(Handler h);
4589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
4609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Register for notifications that an MMI request has completed
4619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * its network activity and is in its final state. This may mean a state
4629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of COMPLETE, FAILED, or CANCELLED.
4639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
4649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>Message.obj</code> will contain an AsyncResult.
4659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>obj.result</code> will be an "MmiCode" object
4669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForMmiComplete(Handler h, int what, Object obj);
4689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
470767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for MMI complete notification.
4719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
4729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForMmiComplete(Handler h);
4749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
47695a1d1a89e383dab893750638c2393dec54833ffWink Saville     * Registration point for Ecm timer reset
47795a1d1a89e383dab893750638c2393dec54833ffWink Saville     * @param h handler to notify
47895a1d1a89e383dab893750638c2393dec54833ffWink Saville     * @param what user-defined message code
47995a1d1a89e383dab893750638c2393dec54833ffWink Saville     * @param obj placed in Message.obj
48095a1d1a89e383dab893750638c2393dec54833ffWink Saville     */
48195a1d1a89e383dab893750638c2393dec54833ffWink Saville    public void registerForEcmTimerReset(Handler h, int what, Object obj);
48295a1d1a89e383dab893750638c2393dec54833ffWink Saville
48395a1d1a89e383dab893750638c2393dec54833ffWink Saville    /**
48495a1d1a89e383dab893750638c2393dec54833ffWink Saville     * Unregister for notification for Ecm timer reset
48595a1d1a89e383dab893750638c2393dec54833ffWink Saville     * @param h Handler to be removed from the registrant list.
48695a1d1a89e383dab893750638c2393dec54833ffWink Saville     */
48795a1d1a89e383dab893750638c2393dec54833ffWink Saville    public void unregisterForEcmTimerReset(Handler h);
48895a1d1a89e383dab893750638c2393dec54833ffWink Saville
48995a1d1a89e383dab893750638c2393dec54833ffWink Saville    /**
4909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns a list of MMI codes that are pending. (They have initiated
4919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * but have not yet completed).
4929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Presently there is only ever one.
493767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Use <code>registerForMmiInitiate</code>
4949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * and <code>registerForMmiComplete</code> for change notification.
4959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public List<? extends MmiCode> getPendingMmiCodes();
4979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
4999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Sends user response to a USSD REQUEST message.  An MmiCode instance
5009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * representing this response is sent to handlers registered with
5019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * registerForMmiInitiate.
5029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
5039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param ussdMessge    Message to send in the response.
5049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
5059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void sendUssdResponse(String ussdMessge);
5069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
508767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Register for ServiceState changed.
5099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Message.obj will contain an AsyncResult.
5109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * AsyncResult.result will be a ServiceState instance
5119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
5129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForServiceStateChanged(Handler h, int what, Object obj);
5139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
515767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for ServiceStateChange notification.
5169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
5179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
5189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForServiceStateChanged(Handler h);
5199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
5219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Register for Supplementary Service notifications from the network.
5229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Message.obj will contain an AsyncResult.
5239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * AsyncResult.result will be a SuppServiceNotification instance.
5249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
5259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param h Handler that receives the notification message.
5269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param what User-defined message code.
5279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param obj User object.
5289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
5299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForSuppServiceNotification(Handler h, int what, Object obj);
5309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
532767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for Supplementary Service notifications.
5339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
534767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
5359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param h Handler to be removed from the registrant list.
5369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
5379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForSuppServiceNotification(Handler h);
5389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
5409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Register for notifications when a supplementary service attempt fails.
5419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Message.obj will contain an AsyncResult.
5429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
5439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param h Handler that receives the notification message.
5449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param what User-defined message code.
5459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param obj User object.
5469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
5479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForSuppServiceFailed(Handler h, int what, Object obj);
5489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
5509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Unregister for notifications when a supplementary service attempt fails.
5519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
552767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
5539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param h Handler to be removed from the registrant list.
5549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
5559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForSuppServiceFailed(Handler h);
5569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
557767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
558767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Register for notifications when a sInCall VoicePrivacy is enabled
559767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
560767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param h Handler that receives the notification message.
561767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param what User-defined message code.
562767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param obj User object.
563767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
564767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void registerForInCallVoicePrivacyOn(Handler h, int what, Object obj);
565767a662ecde33c3979bf02b793d392aca0403162Wink Saville
566767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
567767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unegister for notifications when a sInCall VoicePrivacy is enabled
568767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
569767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param h Handler to be removed from the registrant list.
570767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
571767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void unregisterForInCallVoicePrivacyOn(Handler h);
572767a662ecde33c3979bf02b793d392aca0403162Wink Saville
573767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
574767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Register for notifications when a sInCall VoicePrivacy is disabled
575767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
576767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param h Handler that receives the notification message.
577767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param what User-defined message code.
578767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param obj User object.
579767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
580767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void registerForInCallVoicePrivacyOff(Handler h, int what, Object obj);
581767a662ecde33c3979bf02b793d392aca0403162Wink Saville
582767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
583767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unegister for notifications when a sInCall VoicePrivacy is disabled
584767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
585767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param h Handler to be removed from the registrant list.
586767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
587767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void unregisterForInCallVoicePrivacyOff(Handler h);
588767a662ecde33c3979bf02b793d392aca0403162Wink Saville
589767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
590dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Register for notifications when CDMA OTA Provision status change
591e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     *
592e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * @param h Handler that receives the notification message.
593e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * @param what User-defined message code.
594e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * @param obj User object.
595e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
596dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void registerForCdmaOtaStatusChange(Handler h, int what, Object obj);
597e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
598e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
599dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Unegister for notifications when CDMA OTA Provision status change
600e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * @param h Handler to be removed from the registrant list.
601e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
602dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void unregisterForCdmaOtaStatusChange(Handler h);
603e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
604e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
6059e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo     * Registration point for subscription info ready
6069e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo     * @param h handler to notify
6079e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo     * @param what what code of message when delivered
6089e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo     * @param obj placed in Message.obj
6099e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo     */
6109e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo    public void registerForSubscriptionInfoReady(Handler h, int what, Object obj);
6119e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo
6129e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo    /**
6139e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo     * Unregister for notifications for subscription info
6149e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo     * @param h Handler to be removed from the registrant list.
6159e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo     */
6169e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo    public void unregisterForSubscriptionInfoReady(Handler h);
6179e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo
6189e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo    /**
619767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Returns SIM record load state. Use
6209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>getSimCard().registerForReady()</code> for change notification.
6219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
622767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @return true if records from the SIM have been loaded and are
6239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * available (if applicable). If not applicable to the underlying
6249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * technology, returns true as well.
6259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
626767a662ecde33c3979bf02b793d392aca0403162Wink Saville    boolean getIccRecordsLoaded();
6279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
629767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Returns the ICC card interface for this phone, or null
6309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * if not applicable to underlying technology.
6319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
632767a662ecde33c3979bf02b793d392aca0403162Wink Saville    IccCard getIccCard();
6339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
635767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Answers a ringing or waiting call. Active calls, if any, go on hold.
6369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Answering occurs asynchronously, and final notification occurs via
6371c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link #registerForPreciseCallStateChanged(android.os.Handler, int,
6381c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * java.lang.Object) registerForPreciseCallStateChanged()}.
6399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
6409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @exception CallStateException when no call is ringing or waiting
6419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
6429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void acceptCall() throws CallStateException;
6439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
644767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
645767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Reject (ignore) a ringing call. In GSM, this means UDUB
646767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * (User Determined User Busy). Reject occurs asynchronously,
647767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * and final notification occurs via
6481c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link #registerForPreciseCallStateChanged(android.os.Handler, int,
6491c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * java.lang.Object) registerForPreciseCallStateChanged()}.
6509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
6519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @exception CallStateException when no call is ringing or waiting
6529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
6539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void rejectCall() throws CallStateException;
6549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
655767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
6569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Places any active calls on hold, and makes any held calls
6579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  active. Switch occurs asynchronously and may fail.
658767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Final notification occurs via
6591c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link #registerForPreciseCallStateChanged(android.os.Handler, int,
6601c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * java.lang.Object) registerForPreciseCallStateChanged()}.
6619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
6629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @exception CallStateException if a call is ringing, waiting, or
6639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * dialing/alerting. In these cases, this operation may not be performed.
6649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
6659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void switchHoldingAndActive() throws CallStateException;
6669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
668767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Whether or not the phone can conference in the current phone
6699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * state--that is, one call holding and one call active.
670767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @return true if the phone can conference; false otherwise.
6719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
6729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean canConference();
6739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
675767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Conferences holding and active. Conference occurs asynchronously
676767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * and may fail. Final notification occurs via
6771c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link #registerForPreciseCallStateChanged(android.os.Handler, int,
6781c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * java.lang.Object) registerForPreciseCallStateChanged()}.
679767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
6809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @exception CallStateException if canConference() would return false.
6819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In these cases, this operation may not be performed.
6829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
6839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void conference() throws CallStateException;
6849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
686767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Enable or disable enhanced Voice Privacy (VP). If enhanced VP is
687767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * disabled, normal VP is enabled.
688767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
689767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param enable whether true or false to enable or disable.
690767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param onComplete a callback message when the action is completed.
691767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
692767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void enableEnhancedVoicePrivacy(boolean enable, Message onComplete);
693767a662ecde33c3979bf02b793d392aca0403162Wink Saville
694767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
695767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Get the currently set Voice Privacy (VP) mode.
696767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
697767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param onComplete a callback message when the action is completed.
698767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
699767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void getEnhancedVoicePrivacy(Message onComplete);
700767a662ecde33c3979bf02b793d392aca0403162Wink Saville
701767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
7029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Whether or not the phone can do explicit call transfer in the current
7039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * phone state--that is, one call holding and one call active.
7049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the phone can do explicit call transfer; false otherwise.
7059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean canTransfer();
7079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
7099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Connects the two calls and disconnects the subscriber from both calls
7109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Explicit Call Transfer occurs asynchronously
7119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * and may fail. Final notification occurs via
7121c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link #registerForPreciseCallStateChanged(android.os.Handler, int,
7131c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * java.lang.Object) registerForPreciseCallStateChanged()}.
7149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
7159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @exception CallStateException if canTransfer() would return false.
7169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In these cases, this operation may not be performed.
7179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void explicitCallTransfer() throws CallStateException;
7199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
7219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Clears all DISCONNECTED connections from Call connection lists.
7229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Calls that were in the DISCONNECTED state become idle. This occurs
7239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * synchronously.
7249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void clearDisconnected();
7269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
728767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
729767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Gets the foreground call object, which represents all connections that
730767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * are dialing or active (all connections
7319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * that have their audio path connected).<p>
7329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
7339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The foreground call is a singleton object. It is constant for the life
7349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of this phone. It is never null.<p>
735767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
7369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The foreground call will only ever be in one of these states:
737767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * IDLE, ACTIVE, DIALING, ALERTING, or DISCONNECTED.
7389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
7399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * State change notification is available via
7401c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link #registerForPreciseCallStateChanged(android.os.Handler, int,
7411c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * java.lang.Object) registerForPreciseCallStateChanged()}.
7429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Call getForegroundCall();
7449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
745767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
7469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Gets the background call object, which represents all connections that
7479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * are holding (all connections that have been accepted or connected, but
7489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * do not have their audio path connected). <p>
7499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
7509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The background call is a singleton object. It is constant for the life
7519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of this phone object . It is never null.<p>
752767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
7539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The background call will only ever be in one of these states:
7549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * IDLE, HOLDING or DISCONNECTED.
7559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
7569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * State change notification is available via
7571c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link #registerForPreciseCallStateChanged(android.os.Handler, int,
7581c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * java.lang.Object) registerForPreciseCallStateChanged()}.
7599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Call getBackgroundCall();
7619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
762767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
763767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Gets the ringing call object, which represents an incoming
7649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * connection (if present) that is pending answer/accept. (This connection
7659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * may be RINGING or WAITING, and there may be only one.)<p>
7669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The ringing call is a singleton object. It is constant for the life
7689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of this phone. It is never null.<p>
769767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
7709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The ringing call will only ever be in one of these states:
7719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * IDLE, INCOMING, WAITING or DISCONNECTED.
7729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
7739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * State change notification is available via
7741c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link #registerForPreciseCallStateChanged(android.os.Handler, int,
7751c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * java.lang.Object) registerForPreciseCallStateChanged()}.
7769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Call getRingingCall();
7789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
779767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
7809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Initiate a new voice connection. This happens asynchronously, so you
7819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * cannot assume the audio path is connected (or a call index has been
7829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * assigned) until PhoneStateChanged notification has occurred.
7839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
7849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @exception CallStateException if a new outgoing call is not currently
785767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * possible because no more call slots exist or a call exists that is
786767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * dialing, alerting, ringing, or waiting.  Other errors are
7879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * handled asynchronously.
7889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Connection dial(String dialString) throws CallStateException;
7909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
7929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Handles PIN MMI commands (PIN/PIN2/PUK/PUK2), which are initiated
7939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * without SEND (so <code>dial</code> is not appropriate).
794767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
7959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param dialString the MMI command to be executed.
7969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if MMI command is executed.
7979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean handlePinMmi(String dialString);
7999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Handles in-call MMI commands. While in a call, or while receiving a
8029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * call, use this to execute MMI commands.
8039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * see 3GPP 20.030, section 6.5.5.1 for specs on the allowed MMI commands.
8049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
8059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param command the MMI command to be executed.
8069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the MMI command is executed.
8079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @throws CallStateException
8089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean handleInCallMmiCommands(String command) throws CallStateException;
8109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
812767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Play a DTMF tone on the active call. Ignored if there is no active call.
8139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param c should be one of 0-9, '*' or '#'. Other values will be
8149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * silently ignored.
8159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void sendDtmf(char c);
8179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Start to paly a DTMF tone on the active call. Ignored if there is no active call
8209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * or there is a playing DTMF tone.
8219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param c should be one of 0-9, '*' or '#'. Other values will be
8229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * silently ignored.
8239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void startDtmf(char c);
8259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Stop the playing DTMF tone. Ignored if there is no playing DTMF
8289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * tone or no active call.
8299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void stopDtmf();
8319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
832e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
833dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * send burst DTMF tone, it can send the string as single character or multiple character
834dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * ignore if there is no active call or not valid digits string.
835dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Valid digit means only includes characters ISO-LATIN characters 0-9, *, #
836dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * The difference between sendDtmf and sendBurstDtmf is sendDtmf only sends one character,
837dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * this api can send single character and multiple character, also, this api has response
838dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * back to caller.
839dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *
840dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param dtmfString is string representing the dialing digit(s) in the active call
841dafa22a3ef9328c72319aeec605f6a6d20e46080jsh     * @param on the DTMF ON length in milliseconds, or 0 for default
842dafa22a3ef9328c72319aeec605f6a6d20e46080jsh     * @param off the DTMF OFF length in milliseconds, or 0 for default
843dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param onCompelte is the callback message when the action is processed by BP
844dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *
845e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
846dafa22a3ef9328c72319aeec605f6a6d20e46080jsh    void sendBurstDtmf(String dtmfString, int on, int off, Message onComplete);
8479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
849767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Sets the radio power on/off state (off is sometimes
850767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * called "airplane mode"). Current state can be gotten via
851767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * {@link #getServiceState()}.{@link
8529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * android.telephony.ServiceState#getState() getState()}.
853767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <strong>Note: </strong>This request is asynchronous.
8549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * getServiceState().getState() will not change immediately after this call.
855767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * registerForServiceStateChanged() to find out when the
8569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * request is complete.
8579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
858767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param power true means "on", false means "off".
8599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setRadioPower(boolean power);
8619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
862767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
8639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get voice message waiting indicator status. No change notification
8649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * available on this interface. Use PhoneStateNotifier or similar instead.
8659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
8669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if there is a voice message waiting
8679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean getMessageWaitingIndicator();
8699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get voice call forwarding indicator status. No change notification
8729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * available on this interface. Use PhoneStateNotifier or similar instead.
8739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
8749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if there is a voice call forwarding
8759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean getCallForwardingIndicator();
8779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get the line 1 phone number (MSISDN).<p>
8809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
8819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return phone number. May return null if not
8829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * available or the SIM is not ready
8839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getLine1Number();
8859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the alpha tag associated with the msisdn number.
8889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If there is no alpha tag associated or the record is not yet available,
8899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * returns a default localized string. <p>
8909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getLine1AlphaTag();
8929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Sets the MSISDN phone number in the SIM card.
8959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
8969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param alphaTag the alpha tag associated with the MSISDN phone number
8979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *        (see getMsisdnAlphaTag)
8989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param number the new MSISDN phone number to be set on the SIM.
8999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
9009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
9019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setLine1Number(String alphaTag, String number, Message onComplete);
9029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
904767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Get the voice mail access phone number. Typically dialed when the
905767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * user holds the "1" key in the phone app. May return null if not
9069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * available or the SIM is not ready.<p>
9079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
9089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getVoiceMailNumber();
9099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
911dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Returns unread voicemail count. This count is shown when the  voicemail
912dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * notification is expanded.<p>
913dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
914ce099c3226b33b43e0dd5d1f24347b14a2223ee1David Krause    int getVoiceMessageCount();
915dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
916dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
9179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the alpha tag associated with the voice mail number.
9189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If there is no alpha tag associated or the record is not yet available,
9199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * returns a default localized string. <p>
920767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
921767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Please use this value instead of some other localized string when
9229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * showing a name for this number in the UI. For example, call log
9239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * entries should show this alpha tag. <p>
9249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
9259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Usage of this alpha tag in the UI is a common carrier requirement.
9269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
9279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getVoiceMailAlphaTag();
9289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
9309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * setVoiceMailNumber
9319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * sets the voicemail number in the SIM card.
9329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
9339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param alphaTag the alpha tag associated with the voice mail number
9349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *        (see getVoiceMailAlphaTag)
9359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param voiceMailNumber the new voicemail number to be set on the SIM.
9369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
9379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
9389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setVoiceMailNumber(String alphaTag,
9399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            String voiceMailNumber,
9409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            Message onComplete);
9419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
9439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * getCallForwardingOptions
944767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * gets a call forwarding option. The return value of
945767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * ((AsyncResult)onComplete.obj) is an array of CallForwardInfo.
946767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
947767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param commandInterfaceCFReason is one of the valid call forwarding
948767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        CF_REASONS, as defined in
949dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *        <code>com.android.internal.telephony.CommandsInterface.</code>
9509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
951767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        @see com.android.internal.telephony.CallForwardInfo for details.
9529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
9539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void getCallForwardingOption(int commandInterfaceCFReason,
9549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                  Message onComplete);
955767a662ecde33c3979bf02b793d392aca0403162Wink Saville
9569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
9579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * setCallForwardingOptions
9589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * sets a call forwarding option.
959767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
960767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param commandInterfaceCFReason is one of the valid call forwarding
961767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        CF_REASONS, as defined in
962dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *        <code>com.android.internal.telephony.CommandsInterface.</code>
963767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param commandInterfaceCFAction is one of the valid call forwarding
964767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        CF_ACTIONS, as defined in
965dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *        <code>com.android.internal.telephony.CommandsInterface.</code>
966767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param dialingNumber is the target phone number to forward calls to
9679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param timerSeconds is used by CFNRy to indicate the timeout before
9689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *        forwarding is attempted.
9699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
9709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
9719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setCallForwardingOption(int commandInterfaceCFReason,
9729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                 int commandInterfaceCFAction,
9739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                 String dialingNumber,
9749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                 int timerSeconds,
9759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                 Message onComplete);
976767a662ecde33c3979bf02b793d392aca0403162Wink Saville
9779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
9789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * getOutgoingCallerIdDisplay
979767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * gets outgoing caller id display. The return value of
9809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * ((AsyncResult)onComplete.obj) is an array of int, with a length of 2.
981767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
9829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
983767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        @see com.android.internal.telephony.CommandsInterface.getCLIR for details.
9849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
9859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void getOutgoingCallerIdDisplay(Message onComplete);
986767a662ecde33c3979bf02b793d392aca0403162Wink Saville
9879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
9889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * setOutgoingCallerIdDisplay
989767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * sets a call forwarding option.
990767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
991767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param commandInterfaceCLIRMode is one of the valid call CLIR
992767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        modes, as defined in
993767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        <code>com.android.internal.telephony.CommandsInterface./code>
9949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
9959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
9969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setOutgoingCallerIdDisplay(int commandInterfaceCLIRMode,
9979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                    Message onComplete);
998767a662ecde33c3979bf02b793d392aca0403162Wink Saville
9999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
10009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * getCallWaiting
1001767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * gets call waiting activation state. The return value of
10029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * ((AsyncResult)onComplete.obj) is an array of int, with a length of 1.
1003767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
10049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
1005767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        @see com.android.internal.telephony.CommandsInterface.queryCallWaiting for details.
10069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
10079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void getCallWaiting(Message onComplete);
1008767a662ecde33c3979bf02b793d392aca0403162Wink Saville
10099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
10109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * setCallWaiting
1011767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * sets a call forwarding option.
1012767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1013767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param enable is a boolean representing the state that you are
10149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *        requesting, true for enabled, false for disabled.
10159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
10169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
10179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setCallWaiting(boolean enable, Message onComplete);
1018767a662ecde33c3979bf02b793d392aca0403162Wink Saville
10199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
10209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Scan available networks. This method is asynchronous; .
10219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * On completion, <code>response.obj</code> is set to an AsyncResult with
10229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * one of the following members:.<p>
10239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *<ul>
1024767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <li><code>response.obj.result</code> will be a <code>List</code> of
1025767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <code>com.android.internal.telephony.gsm.NetworkInfo</code> objects, or</li>
1026767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <li><code>response.obj.exception</code> will be set with an exception
10279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * on failure.</li>
10289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * </ul>
10299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1030767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void getAvailableNetworks(Message response);
10319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
10339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Switches network selection mode to "automatic", re-scanning and
10349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * re-selecting a network if appropriate.
1035767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1036767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response The message to dispatch when the network selection
10379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * is complete.
1038767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1039767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @see #selectNetworkManually(com.android.internal.telephony.gsm.NetworkInfo,
10409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * android.os.Message )
10419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
10429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setNetworkSelectionModeAutomatic(Message response);
10439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1045767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Manually selects a network. <code>response</code> is
10469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * dispatched when this is complete.  <code>response.obj</code> will be
10479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * an AsyncResult, and <code>response.obj.exception</code> will be non-null
10489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * on failure.
1049767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
10509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see #setNetworkSelectionModeAutomatic(Message)
10519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1052767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void selectNetworkManually(NetworkInfo network,
10539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            Message response);
10549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
10569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Requests to set the preferred network type for searching and registering
10579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (CS/PS domain, RAT, and operation mode)
10589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param networkType one of  NT_*_TYPE
10599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param response is callback message
10609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
10619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setPreferredNetworkType(int networkType, Message response);
10629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
10649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Query the preferred network type setting
10659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
10669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param response is callback message to report one of  NT_*_TYPE
10679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
10689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void getPreferredNetworkType(Message response);
10699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1071c06ce125408696fd49c7fa9e1189ecb61804007ajsh     * Gets the default SMSC address.
1072c06ce125408696fd49c7fa9e1189ecb61804007ajsh     *
1073c06ce125408696fd49c7fa9e1189ecb61804007ajsh     * @param result Callback message contains the SMSC address.
1074c06ce125408696fd49c7fa9e1189ecb61804007ajsh     */
1075c06ce125408696fd49c7fa9e1189ecb61804007ajsh    void getSmscAddress(Message result);
1076c06ce125408696fd49c7fa9e1189ecb61804007ajsh
1077c06ce125408696fd49c7fa9e1189ecb61804007ajsh    /**
1078c06ce125408696fd49c7fa9e1189ecb61804007ajsh     * Sets the default SMSC address.
1079c06ce125408696fd49c7fa9e1189ecb61804007ajsh     *
1080c06ce125408696fd49c7fa9e1189ecb61804007ajsh     * @param address new SMSC address
1081c06ce125408696fd49c7fa9e1189ecb61804007ajsh     * @param result Callback message is empty on completion
1082c06ce125408696fd49c7fa9e1189ecb61804007ajsh     */
1083c06ce125408696fd49c7fa9e1189ecb61804007ajsh    void setSmscAddress(String address, Message result);
1084c06ce125408696fd49c7fa9e1189ecb61804007ajsh
1085c06ce125408696fd49c7fa9e1189ecb61804007ajsh    /**
10869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Query neighboring cell IDs.  <code>response</code> is dispatched when
10879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * this is complete.  <code>response.obj</code> will be an AsyncResult,
10889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * and <code>response.obj.exception</code> will be non-null on failure.
10899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * On success, <code>AsyncResult.result</code> will be a <code>String[]</code>
10909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * containing the neighboring cell IDs.  Index 0 will contain the count
10919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of available cell IDs.  Cell IDs are in hexadecimal format.
10929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
10939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param response callback message that is dispatched when the query
1094767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * completes.
10959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
10969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void getNeighboringCids(Message response);
10979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
10999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Sets an event to be fired when the telephony system processes
11009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * a post-dial character on an outgoing call.<p>
11019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
11029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Messages of type <code>what</code> will be sent to <code>h</code>.
11039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The <code>obj</code> field of these Message's will be instances of
11049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>AsyncResult</code>. <code>Message.obj.result</code> will be
11059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * a Connection object.<p>
11069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1107767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Message.arg1 will be the post dial character being processed,
11089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * or 0 ('\0') if end of string.<p>
11099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1110767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * If Connection.getPostDialState() == WAIT,
1111767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * the application must call
1112767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * {@link com.android.internal.telephony.Connection#proceedAfterWaitChar()
1113767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Connection.proceedAfterWaitChar()} or
1114767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * {@link com.android.internal.telephony.Connection#cancelPostDial()
11159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Connection.cancelPostDial()}
1116767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * for the telephony system to continue playing the post-dial
11179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * DTMF sequence.<p>
11189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1119767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * If Connection.getPostDialState() == WILD,
1120767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * the application must call
11219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link com.android.internal.telephony.Connection#proceedAfterWildChar
11229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Connection.proceedAfterWildChar()}
1123767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * or
1124767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * {@link com.android.internal.telephony.Connection#cancelPostDial()
11259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Connection.cancelPostDial()}
1126767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * for the telephony system to continue playing the
11279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * post-dial DTMF sequence.<p>
1128767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
11299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Only one post dial character handler may be set. <p>
11309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Calling this method with "h" equal to null unsets this handler.<p>
11319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setOnPostDialCharacter(Handler h, int what, Object obj);
11339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1136767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Mutes or unmutes the microphone for the active call. The microphone
1137767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * is automatically unmuted if a call is answered, dialed, or resumed
11389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * from a holding state.
1139767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1140767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param muted true to mute the microphone,
11419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * false to activate the microphone.
11429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setMute(boolean muted);
11459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1147767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Gets current mute status. Use
11481c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link #registerForPreciseCallStateChanged(android.os.Handler, int,
11491c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * java.lang.Object) registerForPreciseCallStateChanged()}
11509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * as a change notifcation, although presently phone state changed is not
11519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * fired when setMute() is called.
11529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
11539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true is muting, false is unmuting
11549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean getMute();
11569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
11589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Invokes RIL_REQUEST_OEM_HOOK_RAW on RIL implementation.
1159767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
11609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param data The data for the request.
1161767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response <strong>On success</strong>,
11629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (byte[])(((AsyncResult)response.obj).result)
1163767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <strong>On failure</strong>,
1164767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * (((AsyncResult)response.obj).result) == null and
11659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (((AsyncResult)response.obj).exception) being an instance of
11669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * com.android.internal.telephony.gsm.CommandException
11679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
11689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see #invokeOemRilRequestRaw(byte[], android.os.Message)
11699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void invokeOemRilRequestRaw(byte[] data, Message response);
11719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
11739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Invokes RIL_REQUEST_OEM_HOOK_Strings on RIL implementation.
1174767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
11759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param strings The strings to make available as the request data.
1176767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response <strong>On success</strong>, "response" bytes is
11779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * made available as:
11789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (String[])(((AsyncResult)response.obj).result).
1179767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <strong>On failure</strong>,
1180767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * (((AsyncResult)response.obj).result) == null and
11819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (((AsyncResult)response.obj).exception) being an instance of
11829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * com.android.internal.telephony.gsm.CommandException
11839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
11849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see #invokeOemRilRequestStrings(java.lang.String[], android.os.Message)
11859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void invokeOemRilRequestStrings(String[] strings, Message response);
11879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
118902722fbd77fa22f60ed3778b806b1e8f176b88c1Wink Saville     * Get the current active Data Call list
1190767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1191767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response <strong>On success</strong>, "response" bytes is
1192767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * made available as:
1193767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * (String[])(((AsyncResult)response.obj).result).
1194767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <strong>On failure</strong>,
1195767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * (((AsyncResult)response.obj).result) == null and
1196767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * (((AsyncResult)response.obj).exception) being an instance of
1197767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * com.android.internal.telephony.gsm.CommandException
1198767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1199767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void getDataCallList(Message response);
1200767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1201767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1202767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Get current mutiple data connection status
1203767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1204767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @return list of data connections
1205767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
120602722fbd77fa22f60ed3778b806b1e8f176b88c1Wink Saville    List<DataConnection> getCurrentDataConnectionList();
1207767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1208767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
12097a043b351b43e963605afef6ab76a52ae3a9270eTammo Spalink     * Update the ServiceState CellLocation for current network registration.
12109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12117a043b351b43e963605afef6ab76a52ae3a9270eTammo Spalink    void updateServiceLocation();
12129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Enable location update notifications.
12159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void enableLocationUpdates();
12179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Disable location update notifications.
12209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void disableLocationUpdates();
12229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1224767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * For unit tests; don't send notifications to "Phone"
12259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * mailbox registrants if true.
12269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setUnitTestMode(boolean f);
1228767a662ecde33c3979bf02b793d392aca0403162Wink Saville
12299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true If unit test mode is enabled
12319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean getUnitTestMode();
12339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Assign a specified band for RF configuration.
12369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
12379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param bandMode one of BM_*_BAND
12389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param response is callback message
12399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setBandMode(int bandMode, Message response);
12419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Query the list of band mode supported by RF.
12449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
12459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param response is callback message
12469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *        ((AsyncResult)response.obj).result  is an int[] with every
12479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *        element representing one avialable BM_*_BAND
12489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void queryAvailableBandMode(Message response);
12509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if enable data connection on roaming
12539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean getDataRoamingEnabled();
12559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param enable set true if enable data connection on roaming
12589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setDataRoamingEnabled(boolean enable);
12609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1262767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *  Query the CDMA roaming preference setting
1263767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1264767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response is callback message to report one of  CDMA_RM_*
1265767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1266767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void queryCdmaRoamingPreference(Message response);
1267767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1268767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1269767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *  Requests to set the CDMA roaming preference
1270767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param cdmaRoamingType one of  CDMA_RM_*
1271767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response is callback message
1272767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1273767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void setCdmaRoamingPreference(int cdmaRoamingType, Message response);
1274767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1275767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1276767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *  Requests to set the CDMA subscription mode
1277767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param cdmaSubscriptionType one of  CDMA_SUBSCRIPTION_*
1278767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response is callback message
1279767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1280767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void setCdmaSubscription(int cdmaSubscriptionType, Message response);
1281767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1282767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
12839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If this is a simulated phone interface, returns a SimulatedRadioControl.
1284767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @ return A SimulatedRadioControl if this is a simulated interface;
12859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * otherwise, null.
12869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    SimulatedRadioControl getSimulatedRadioControl();
12889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Allow mobile data connections.
12919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return {@code true} if the operation started successfully
12929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <br/>{@code false} if it
12939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * failed immediately.<br/>
12949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Even in the {@code true} case, it may still fail later
12959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * during setup, in which case an asynchronous indication will
12969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * be supplied.
12979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean enableDataConnectivity();
12999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
13019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Disallow mobile data connections, and terminate any that
13029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * are in progress.
13039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return {@code true} if the operation started successfully
13049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <br/>{@code false} if it
13059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * failed immediately.<br/>
13069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Even in the {@code true} case, it may still fail later
13079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * during setup, in which case an asynchronous indication will
13089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * be supplied.
13099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean disableDataConnectivity();
13119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1313c6d6b687af385d2a4e5f5210a9111d7b1acc233cWink Saville     * Report the current state of data connectivity (enabled or disabled)
1314c6d6b687af385d2a4e5f5210a9111d7b1acc233cWink Saville     * @return {@code false} if data connectivity has been explicitly disabled,
1315c6d6b687af385d2a4e5f5210a9111d7b1acc233cWink Saville     * {@code true} otherwise.
1316c6d6b687af385d2a4e5f5210a9111d7b1acc233cWink Saville     */
1317c6d6b687af385d2a4e5f5210a9111d7b1acc233cWink Saville    boolean isDataConnectivityEnabled();
1318c6d6b687af385d2a4e5f5210a9111d7b1acc233cWink Saville
1319c6d6b687af385d2a4e5f5210a9111d7b1acc233cWink Saville    /**
13209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Enables the specified APN type. Only works for "special" APN types,
13219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * i.e., not the default APN.
13229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param type The desired APN type. Cannot be {@link #APN_TYPE_DEFAULT}.
13239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return <code>APN_ALREADY_ACTIVE</code> if the current APN
13249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * services the requested type.<br/>
13259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>APN_TYPE_NOT_AVAILABLE</code> if the carrier does not
13269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * support the requested APN.<br/>
13279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>APN_REQUEST_STARTED</code> if the request has been initiated.<br/>
13289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>APN_REQUEST_FAILED</code> if the request was invalid.<br/>
13299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * A <code>ACTION_ANY_DATA_CONNECTION_STATE_CHANGED</code> broadcast will
13309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * indicate connection state progress.
13319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int enableApnType(String type);
13339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
13359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Disables the specified APN type, and switches back to the default APN,
13369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * if necessary. Switching to the default APN will not happen if default
13379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * data traffic has been explicitly disabled via a call to {@link #disableDataConnectivity}.
13389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p/>Only works for "special" APN types,
13399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * i.e., not the default APN.
13409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param type The desired APN type. Cannot be {@link #APN_TYPE_DEFAULT}.
13419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return <code>APN_ALREADY_ACTIVE</code> if the default APN
13429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * is already active.<br/>
13439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>APN_REQUEST_STARTED</code> if the request to switch to the default
13449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * APN has been initiated.<br/>
13459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>APN_REQUEST_FAILED</code> if the request was invalid.<br/>
13469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * A <code>ACTION_ANY_DATA_CONNECTION_STATE_CHANGED</code> broadcast will
13479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * indicate connection state progress.
13489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int disableApnType(String type);
13509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
13529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Report on whether data connectivity is allowed.
13539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isDataConnectivityPossible();
13559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
13579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the name of the network interface used by the specified APN type.
13589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getInterfaceName(String apnType);
13609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
13629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the IP address of the network interface used by the specified
13639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * APN type.
13649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getIpAddress(String apnType);
13669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
13689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the gateway for the network interface used by the specified APN
13699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * type.
13709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getGateway(String apnType);
13729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
13749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the DNS servers for the network interface used by the specified
13759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * APN type.
13769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String[] getDnsServers(String apnType);
13789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1380767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Retrieves the unique device ID, e.g., IMEI for GSM phones and MEID for CDMA phones.
13819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getDeviceId();
13839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
13859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Retrieves the software version number for the device, e.g., IMEI/SV
13869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * for GSM phones.
13879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getDeviceSvn();
13899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
13919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Retrieves the unique sbuscriber ID, e.g., IMSI for GSM phones.
13929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getSubscriberId();
13949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1396767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Retrieves the serial number of the ICC, if applicable.
1397767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1398767a662ecde33c3979bf02b793d392aca0403162Wink Saville    String getIccSerialNumber();
1399767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1400a3659232ba9f7f3ba87ff036d17e08a46cf1be62Wink Saville    /* CDMA support methods */
1401767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1402e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
1403e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Retrieves the MIN for CDMA phones.
1404e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
1405dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    String getCdmaMin();
1406767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1407767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
14089e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo     * Check if subscription data has been assigned to mMin
14099e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo     *
14109e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo     * return true if MIN info is ready; false otherwise.
14119e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo     */
14129e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo    boolean isMinInfoReady();
14139e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo
14149e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo    /**
141522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *  Retrieves PRL Version for CDMA phones
141622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
141722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    String getCdmaPrlVersion();
141822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
141922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
1420767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Retrieves the ESN for CDMA phones.
14219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1422767a662ecde33c3979bf02b793d392aca0403162Wink Saville    String getEsn();
1423767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1424767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1425767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Retrieves MEID for CDMA phones.
1426767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1427767a662ecde33c3979bf02b793d392aca0403162Wink Saville    String getMeid();
1428767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1429767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1430767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Retrieves the PhoneSubInfo of the Phone
1431767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1432767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public PhoneSubInfo getPhoneSubInfo();
1433767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1434767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1435767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Retrieves the IccSmsInterfaceManager of the Phone
1436767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1437767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public IccSmsInterfaceManager getIccSmsInterfaceManager();
1438767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1439767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1440767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Retrieves the IccPhoneBookInterfaceManager of the Phone
1441767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1442767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public IccPhoneBookInterfaceManager getIccPhoneBookInterfaceManager();
1443767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1444767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1445e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * setTTYMode
1446767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * sets a TTY mode option.
1447767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1448767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param enable is a boolean representing the state that you are
1449767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        requesting, true for enabled, false for disabled.
1450767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param onComplete a callback message when the action is completed
1451767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1452e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    void setTTYMode(int ttyMode, Message onComplete);
1453767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1454767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1455e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * queryTTYMode
1456767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * query the status of the TTY mode
1457767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1458767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param onComplete a callback message when the action is completed.
1459767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1460e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    void queryTTYMode(Message onComplete);
1461e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
1462e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
1463767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Activate or deactivate cell broadcast SMS.
1464767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1465767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param activate
1466767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *            0 = activate, 1 = deactivate
1467767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response
1468767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *            Callback message is empty on completion
1469767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1470767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void activateCellBroadcastSms(int activate, Message response);
1471767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1472767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1473767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Query the current configuration of cdma cell broadcast SMS.
1474767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1475767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response
1476767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *            Callback message is empty on completion
1477767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1478767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void getCellBroadcastSmsConfig(Message response);
1479767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1480767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1481767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Configure cell broadcast SMS.
1482767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1483e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * TODO: Change the configValuesArray to a RIL_BroadcastSMSConfig
1484e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     *
1485767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response
1486767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *            Callback message is empty on completion
1487767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1488767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void setCellBroadcastSmsConfig(int[] configValuesArray, Message response);
1489767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1490767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void notifyDataActivity();
1491e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
1492e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
1493e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Returns the CDMA ERI icon index to display
1494e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
1495e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    public int getCdmaEriIconIndex();
1496e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
1497e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
1498e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Returns the CDMA ERI icon mode,
1499e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * 0 - ON
1500e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * 1 - FLASHING
1501e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
1502e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    public int getCdmaEriIconMode();
1503e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
1504e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
1505e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Returns the CDMA ERI text,
1506e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
1507e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    public String getCdmaEriText();
1508e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
1509dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1510dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * request to exit emergency call back mode
1511dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * the caller should use setOnECMModeExitResponse
1512dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * to receive the emergency callback mode exit response
1513dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1514dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void exitEmergencyCallbackMode();
1515dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1516dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1517dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * this decides if the dial number is OTA(Over the air provision) number or not
1518dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param dialStr is string representing the dialing digit(s)
1519dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @return  true means the dialStr is OTA number, and false means the dialStr is not OTA number
1520dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1521dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    boolean isOtaSpNumber(String dialStr);
1522dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1523dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1524dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Register for notifications when CDMA call waiting comes
1525dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *
1526dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param h Handler that receives the notification message.
1527dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param what User-defined message code.
1528dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param obj User object.
1529dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1530dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void registerForCallWaiting(Handler h, int what, Object obj);
1531dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1532dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1533dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Unegister for notifications when CDMA Call waiting comes
1534dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param h Handler to be removed from the registrant list.
1535dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1536dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void unregisterForCallWaiting(Handler h);
1537dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1538dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1539dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1540dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Register for signal information notifications from the network.
1541dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Message.obj will contain an AsyncResult.
1542dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * AsyncResult.result will be a SuppServiceNotification instance.
1543dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *
1544dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param h Handler that receives the notification message.
1545dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param what User-defined message code.
1546dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param obj User object.
1547dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1548dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1549dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void registerForSignalInfo(Handler h, int what, Object obj) ;
1550dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1551dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Unregisters for signal information notifications.
1552dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Extraneous calls are tolerated silently
1553dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *
1554dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param h Handler to be removed from the registrant list.
1555dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1556dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void unregisterForSignalInfo(Handler h);
1557dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1558dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1559dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Register for display information notifications from the network.
1560dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Message.obj will contain an AsyncResult.
1561dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * AsyncResult.result will be a SuppServiceNotification instance.
1562dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *
1563dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param h Handler that receives the notification message.
1564dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param what User-defined message code.
1565dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param obj User object.
1566dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1567dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void registerForDisplayInfo(Handler h, int what, Object obj);
1568dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1569dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1570dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Unregisters for display information notifications.
1571dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Extraneous calls are tolerated silently
1572dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *
1573dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param h Handler to be removed from the registrant list.
1574dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1575dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void unregisterForDisplayInfo(Handler h) ;
1576dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
157722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
157822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Register for CDMA number information record notification from the network.
157922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Message.obj will contain an AsyncResult.
158022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * AsyncResult.result will be a CdmaInformationRecords.CdmaNumberInfoRec
158122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * instance.
158222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
158322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler that receives the notification message.
158422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param what User-defined message code.
158522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param obj User object.
158622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
158722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void registerForNumberInfo(Handler h, int what, Object obj);
158822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
158922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
159022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Unregisters for number information record notifications.
159122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Extraneous calls are tolerated silently
159222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
159322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler to be removed from the registrant list.
159422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
159522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void unregisterForNumberInfo(Handler h);
159622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
159722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
159822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Register for CDMA redirected number information record notification
159922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * from the network.
160022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Message.obj will contain an AsyncResult.
160122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * AsyncResult.result will be a CdmaInformationRecords.CdmaRedirectingNumberInfoRec
160222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * instance.
160322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
160422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler that receives the notification message.
160522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param what User-defined message code.
160622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param obj User object.
160722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
160822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void registerForRedirectedNumberInfo(Handler h, int what, Object obj);
160922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
161022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
161122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Unregisters for redirected number information record notification.
161222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Extraneous calls are tolerated silently
161322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
161422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler to be removed from the registrant list.
161522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
161622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void unregisterForRedirectedNumberInfo(Handler h);
161722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
161822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
161922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Register for CDMA line control information record notification
162022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * from the network.
162122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Message.obj will contain an AsyncResult.
162222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * AsyncResult.result will be a CdmaInformationRecords.CdmaLineControlInfoRec
162322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * instance.
162422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
162522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler that receives the notification message.
162622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param what User-defined message code.
162722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param obj User object.
162822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
162922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void registerForLineControlInfo(Handler h, int what, Object obj);
163022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
163122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
163222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Unregisters for line control information notifications.
163322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Extraneous calls are tolerated silently
163422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
163522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler to be removed from the registrant list.
163622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
163722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void unregisterForLineControlInfo(Handler h);
163822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
163922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
164022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Register for CDMA T53 CLIR information record notifications
164122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * from the network.
164222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Message.obj will contain an AsyncResult.
164322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * AsyncResult.result will be a CdmaInformationRecords.CdmaT53ClirInfoRec
164422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * instance.
164522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
164622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler that receives the notification message.
164722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param what User-defined message code.
164822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param obj User object.
164922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
165022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void registerFoT53ClirlInfo(Handler h, int what, Object obj);
165122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
165222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
165322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Unregisters for T53 CLIR information record notification
165422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Extraneous calls are tolerated silently
165522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
165622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler to be removed from the registrant list.
165722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
165822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void unregisterForT53ClirInfo(Handler h);
165922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
166022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
166122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Register for CDMA T53 audio control information record notifications
166222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * from the network.
166322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Message.obj will contain an AsyncResult.
166422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * AsyncResult.result will be a CdmaInformationRecords.CdmaT53AudioControlInfoRec
166522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * instance.
166622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
166722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler that receives the notification message.
166822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param what User-defined message code.
166922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param obj User object.
167022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
167122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void registerForT53AudioControlInfo(Handler h, int what, Object obj);
167222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
167322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
167422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Unregisters for T53 audio control information record notifications.
167522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Extraneous calls are tolerated silently
167622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
167722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler to be removed from the registrant list.
167822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
167922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void unregisterForT53AudioControlInfo(Handler h);
1680dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1681dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1682dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * registers for exit emergency call back mode request response
1683dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *
1684dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param h Handler that receives the notification message.
1685dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param what User-defined message code.
1686dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param obj User object.
1687dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1688dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1689dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void setOnEcbModeExitResponse(Handler h, int what, Object obj);
1690dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1691dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1692dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Unregisters for exit emergency call back mode request response
1693dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *
1694dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param h Handler to be removed from the registrant list.
1695dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1696dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void unsetOnEcbModeExitResponse(Handler h);
1697dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1698dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
16999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
1700