Phone.java revision 42acef37339afe6ac608c842f1637870ee9c4f6c
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;
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport com.android.internal.telephony.gsm.PdpConnection;
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";
1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_RESTORE_DEFAULT_APN = "restoreDefaultApn";
1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_RADIO_TURNED_OFF = "radioTurnedOff";
1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_PDP_RESET = "pdpReset";
1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_VOICE_CALL_ENDED = "2GVoiceCallEnded";
1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_VOICE_CALL_STARTED = "2GVoiceCallStarted";
1624df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project    static final String REASON_PS_RESTRICT_ENABLED = "psRestrictEnabled";
1634df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project    static final String REASON_PS_RESTRICT_DISABLED = "psRestrictDisabled";
164ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project    static final String REASON_SIM_LOADED = "simLoaded";
165e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
1664df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project    // Used for band mode selection methods
1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int BM_UNSPECIFIED = 0; // selected by baseband automatically
1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int BM_EURO_BAND   = 1; // GSM-900 / DCS-1800 / WCDMA-IMT-2000
1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int BM_US_BAND     = 2; // GSM-850 / PCS-1900 / WCDMA-850 / WCDMA-PCS-1900
1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int BM_JPN_BAND    = 3; // WCDMA-800 / WCDMA-IMT-2000
1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int BM_AUS_BAND    = 4; // GSM-900 / DCS-1800 / WCDMA-850 / WCDMA-IMT-2000
1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int BM_AUS2_BAND   = 5; // GSM-900 / DCS-1800 / WCDMA-850
1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int BM_BOUNDARY    = 6; // upper band boundary
1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // Used for preferred network type
176767a662ecde33c3979bf02b793d392aca0403162Wink Saville    // Note NT_* substitute RILConstants.NETWORK_MODE_* above the Phone
177ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh    int NT_MODE_WCDMA_PREF   = RILConstants.NETWORK_MODE_WCDMA_PREF;
178ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh    int NT_MODE_GSM_ONLY     = RILConstants.NETWORK_MODE_GSM_ONLY;
179ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh    int NT_MODE_WCDMA_ONLY   = RILConstants.NETWORK_MODE_WCDMA_ONLY;
180ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh    int NT_MODE_GSM_UMTS     = RILConstants.NETWORK_MODE_GSM_UMTS;
181ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh
182ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh    int NT_MODE_CDMA         = RILConstants.NETWORK_MODE_CDMA;
183ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh
184ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh    int NT_MODE_CDMA_NO_EVDO = RILConstants.NETWORK_MODE_CDMA_NO_EVDO;
185ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh    int NT_MODE_EVDO_NO_CDMA = RILConstants.NETWORK_MODE_EVDO_NO_CDMA;
186ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh    int NT_MODE_GLOBAL       = RILConstants.NETWORK_MODE_GLOBAL;
187ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh
188ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh    int PREFERRED_NT_MODE    = RILConstants.PREFERRED_NETWORK_MODE;
189767a662ecde33c3979bf02b793d392aca0403162Wink Saville
190767a662ecde33c3979bf02b793d392aca0403162Wink Saville
191767a662ecde33c3979bf02b793d392aca0403162Wink Saville    // Used for CDMA roaming mode
192e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int CDMA_RM_HOME        = 0;  // Home Networks only, as defined in PRL
193e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int CDMA_RM_AFFILIATED  = 1;  // Roaming an Affiliated networks, as defined in PRL
194e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int CDMA_RM_ANY         = 2;  // Roaming on Any Network, as defined in PRL
195767a662ecde33c3979bf02b793d392aca0403162Wink Saville
196767a662ecde33c3979bf02b793d392aca0403162Wink Saville    // Used for CDMA subscription mode
197e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int CDMA_SUBSCRIPTION_RUIM_SIM = 0; // RUIM/SIM (default)
198e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int CDMA_SUBSCRIPTION_NV       = 1; // NV -> non-volatile memory
199e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
200e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int PREFERRED_CDMA_SUBSCRIPTION = CDMA_SUBSCRIPTION_NV;
201e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
202e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int TTY_MODE_OFF = 0;
203e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int TTY_MODE_FULL = 1;
204e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int TTY_MODE_HCO = 2;
205e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int TTY_MODE_VCO = 3;
206767a662ecde33c3979bf02b793d392aca0403162Wink Saville
207dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     /**
208dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * CDMA OTA PROVISION STATUS, the same as RIL_CDMA_OTA_Status in ril.h
209dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
210dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
211dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_SPL_UNLOCKED = 0;
212dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_SPC_RETRIES_EXCEEDED = 1;
213dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_A_KEY_EXCHANGED = 2;
214dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_SSD_UPDATED = 3;
215dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_NAM_DOWNLOADED = 4;
216dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_MDN_DOWNLOADED = 5;
217dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_IMSI_DOWNLOADED = 6;
218dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_PRL_DOWNLOADED = 7;
219dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_COMMITTED = 8;
220dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_OTAPA_STARTED = 9;
221dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_OTAPA_STOPPED = 10;
222dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_OTAPA_ABORTED = 11;
223dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
224dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
225767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
226767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Get the current ServiceState. Use
2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>registerForServiceStateChanged</code> to be informed of
2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * updates.
2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    ServiceState getServiceState();
2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get the current CellLocation.
2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    CellLocation getCellLocation();
236767a662ecde33c3979bf02b793d392aca0403162Wink Saville
2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get the current DataState. No change notification exists at this
239767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * interface -- use
240b111554883ef3d4101c2f3fe9d630f5c1d3bbf7aMarco Nelissen     * {@link com.android.telephony.PhoneStateListener PhoneStateListener}
241767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * instead.
2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    DataState getDataConnectionState();
2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get the current DataActivityState. No change notification exists at this
2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * interface -- use
2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link TelephonyManager} instead.
2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    DataActivityState getDataActivityState();
251767a662ecde33c3979bf02b793d392aca0403162Wink Saville
2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Gets the context for the phone, as set at initialization time.
2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Context getContext();
2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
257767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
258767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Disables the DNS check (i.e., allows "0.0.0.0").
259767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Useful for lab testing environment.
260767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param b true disables the check, false enables.
261767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
262767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void disableDnsCheck(boolean b);
263767a662ecde33c3979bf02b793d392aca0403162Wink Saville
264767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
265767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Returns true if the DNS check is currently disabled.
266767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
267767a662ecde33c3979bf02b793d392aca0403162Wink Saville    boolean isDnsCheckDisabled();
268767a662ecde33c3979bf02b793d392aca0403162Wink Saville
269767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get current coarse-grained voice call state.
2711c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * Use {@link #registerForPreciseCallStateChanged(Handler, int, Object)
2721c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * registerForPreciseCallStateChanged()} for change notification. <p>
2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If the phone has an active call and call waiting occurs,
2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * then the phone state is RINGING not OFFHOOK
275767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <strong>Note:</strong>
2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * This registration point provides notification of finer-grained
2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * changes.<p>
2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    State getState();
2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
282767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns a string identifier for this phone interface for parties
2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  outside the phone app process.
2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  @return The string name.
2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getPhoneName();
2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
289767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns an array of string identifiers for the APN types serviced by the
2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * currently active or last connected APN.
2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  @return The string array.
2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String[] getActiveApnTypes();
295767a662ecde33c3979bf02b793d392aca0403162Wink Saville
296767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns a string identifier for currently active or last connected APN.
2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  @return The string name.
2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getActiveApn();
301767a662ecde33c3979bf02b793d392aca0403162Wink Saville
302767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
303dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Get current signal strength. No change notification available on this
304dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * interface. Use <code>PhoneStateNotifier</code> or an equivalent.
305dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * An ASU is 0-31 or -1 if unknown (for GSM, dBm = -113 - 2 * asu).
306dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * The following special values are defined:</p>
307dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * <ul><li>0 means "-113 dBm or less".</li>
308dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * <li>31 means "-51 dBm or greater".</li></ul>
309767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
310e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * @return Current signal strength as SignalStrength
3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
312e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    SignalStrength getSignalStrength();
313767a662ecde33c3979bf02b793d392aca0403162Wink Saville
314767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Notifies when a previously untracked non-ringing/waiting connection has appeared.
3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * This is likely due to some other entity (eg, SIM card application) initiating a call.
3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForUnknownConnection(Handler h, int what, Object obj);
3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Unregisters for unknown connection notifications.
3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForUnknownConnection(Handler h);
3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
325767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
3261c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * Register for getting notifications for change in the Call State {@link Call.State}
3271c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * This is called PreciseCallState because the call state is more precise than the
3281c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link Phone.State} which can be obtained using the {@link PhoneStateListener}
3291c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     *
3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Resulting events will have an AsyncResult in <code>Message.obj</code>.
3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * AsyncResult.userData will be set to the obj argument here.
3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The <em>h</em> parameter is held only by a weak reference.
3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3341c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh    void registerForPreciseCallStateChanged(Handler h, int what, Object obj);
3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
337767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for voice call state change notifications.
3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently.
3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3401c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh    void unregisterForPreciseCallStateChanged(Handler h);
3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
343767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Notifies when a new ringing or waiting connection has appeared.<p>
3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Messages received from this:
3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Message.obj will be an AsyncResult
3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  AsyncResult.userObj = obj
3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  AsyncResult.result = a Connection. <p>
3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Please check Connection.isRinging() to make sure the Connection
3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  has not dropped since this message was posted.
352767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *  If Connection.isRinging() is true, then
3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *   Connection.getCall() == Phone.getRingingCall()
3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForNewRingingConnection(Handler h, int what, Object obj);
3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
358767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for new ringing connection notification.
3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForNewRingingConnection(Handler h);
3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
364767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Notifies when an incoming call rings.<p>
3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Messages received from this:
3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Message.obj will be an AsyncResult
3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  AsyncResult.userObj = obj
3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  AsyncResult.result = a Connection. <p>
3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForIncomingRing(Handler h, int what, Object obj);
373767a662ecde33c3979bf02b793d392aca0403162Wink Saville
3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
375767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for ring notification.
3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
378767a662ecde33c3979bf02b793d392aca0403162Wink Saville
3799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForIncomingRing(Handler h);
380767a662ecde33c3979bf02b793d392aca0403162Wink Saville
381767a662ecde33c3979bf02b793d392aca0403162Wink Saville
382767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Notifies when a voice connection has disconnected, either due to local
3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * or remote hangup or error.
385767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Messages received from this will have the following members:<p>
3879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  <ul><li>Message.obj will be an AsyncResult</li>
3889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  <li>AsyncResult.userObj = obj</li>
389767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *  <li>AsyncResult.result = a Connection object that is
3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  no longer connected.</li></ul>
3919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForDisconnect(Handler h, int what, Object obj);
3939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
395767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for voice disconnection notification.
3969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
3979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForDisconnect(Handler h);
3999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Register for notifications of initiation of a new MMI code request.
4039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * MMI codes for GSM are discussed in 3GPP TS 22.030.<p>
4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
4059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Example: If Phone.dial is called with "*#31#", then the app will
4069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * be notified here.<p>
4079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
4089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The returned <code>Message.obj</code> will contain an AsyncResult.
4099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
4109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>obj.result</code> will be an "MmiCode" object.
4119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForMmiInitiate(Handler h, int what, Object obj);
4139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
415767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for new MMI initiate notification.
4169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
4179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForMmiInitiate(Handler h);
4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Register for notifications that an MMI request has completed
4229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * its network activity and is in its final state. This may mean a state
4239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of COMPLETE, FAILED, or CANCELLED.
4249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
4259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>Message.obj</code> will contain an AsyncResult.
4269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>obj.result</code> will be an "MmiCode" object
4279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForMmiComplete(Handler h, int what, Object obj);
4299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
431767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for MMI complete notification.
4329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
4339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForMmiComplete(Handler h);
4359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
4379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns a list of MMI codes that are pending. (They have initiated
4389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * but have not yet completed).
4399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Presently there is only ever one.
440767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Use <code>registerForMmiInitiate</code>
4419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * and <code>registerForMmiComplete</code> for change notification.
4429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public List<? extends MmiCode> getPendingMmiCodes();
4449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Sends user response to a USSD REQUEST message.  An MmiCode instance
4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * representing this response is sent to handlers registered with
4489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * registerForMmiInitiate.
4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
4509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param ussdMessge    Message to send in the response.
4519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void sendUssdResponse(String ussdMessge);
4539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
455767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Register for ServiceState changed.
4569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Message.obj will contain an AsyncResult.
4579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * AsyncResult.result will be a ServiceState instance
4589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForServiceStateChanged(Handler h, int what, Object obj);
4609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
462767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for ServiceStateChange notification.
4639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
4649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForServiceStateChanged(Handler h);
4669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
4689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Register for Supplementary Service notifications from the network.
4699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Message.obj will contain an AsyncResult.
4709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * AsyncResult.result will be a SuppServiceNotification instance.
4719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
4729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param h Handler that receives the notification message.
4739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param what User-defined message code.
4749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param obj User object.
4759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForSuppServiceNotification(Handler h, int what, Object obj);
4779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
479767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for Supplementary Service notifications.
4809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
481767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
4829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param h Handler to be removed from the registrant list.
4839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForSuppServiceNotification(Handler h);
4859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
4879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Register for notifications when a supplementary service attempt fails.
4889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Message.obj will contain an AsyncResult.
4899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
4909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param h Handler that receives the notification message.
4919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param what User-defined message code.
4929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param obj User object.
4939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForSuppServiceFailed(Handler h, int what, Object obj);
4959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
4979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Unregister for notifications when a supplementary service attempt fails.
4989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
499767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
5009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param h Handler to be removed from the registrant list.
5019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
5029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForSuppServiceFailed(Handler h);
5039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
504767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
505767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Register for notifications when a sInCall VoicePrivacy is enabled
506767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
507767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param h Handler that receives the notification message.
508767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param what User-defined message code.
509767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param obj User object.
510767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
511767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void registerForInCallVoicePrivacyOn(Handler h, int what, Object obj);
512767a662ecde33c3979bf02b793d392aca0403162Wink Saville
513767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
514767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unegister for notifications when a sInCall VoicePrivacy is enabled
515767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
516767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param h Handler to be removed from the registrant list.
517767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
518767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void unregisterForInCallVoicePrivacyOn(Handler h);
519767a662ecde33c3979bf02b793d392aca0403162Wink Saville
520767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
521767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Register for notifications when a sInCall VoicePrivacy is disabled
522767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
523767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param h Handler that receives the notification message.
524767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param what User-defined message code.
525767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param obj User object.
526767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
527767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void registerForInCallVoicePrivacyOff(Handler h, int what, Object obj);
528767a662ecde33c3979bf02b793d392aca0403162Wink Saville
529767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
530767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unegister for notifications when a sInCall VoicePrivacy is disabled
531767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
532767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param h Handler to be removed from the registrant list.
533767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
534767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void unregisterForInCallVoicePrivacyOff(Handler h);
535767a662ecde33c3979bf02b793d392aca0403162Wink Saville
536767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
537dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Register for notifications when CDMA OTA Provision status change
538e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     *
539e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * @param h Handler that receives the notification message.
540e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * @param what User-defined message code.
541e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * @param obj User object.
542e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
543dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void registerForCdmaOtaStatusChange(Handler h, int what, Object obj);
544e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
545e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
546dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Unegister for notifications when CDMA OTA Provision status change
547e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * @param h Handler to be removed from the registrant list.
548e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
549dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void unregisterForCdmaOtaStatusChange(Handler h);
550e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
551e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
5529e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo     * Registration point for subscription info ready
5539e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo     * @param h handler to notify
5549e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo     * @param what what code of message when delivered
5559e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo     * @param obj placed in Message.obj
5569e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo     */
5579e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo    public void registerForSubscriptionInfoReady(Handler h, int what, Object obj);
5589e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo
5599e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo    /**
5609e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo     * Unregister for notifications for subscription info
5619e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo     * @param h Handler to be removed from the registrant list.
5629e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo     */
5639e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo    public void unregisterForSubscriptionInfoReady(Handler h);
5649e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo
5659e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo    /**
566767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Returns SIM record load state. Use
5679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>getSimCard().registerForReady()</code> for change notification.
5689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
569767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @return true if records from the SIM have been loaded and are
5709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * available (if applicable). If not applicable to the underlying
5719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * technology, returns true as well.
5729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
573767a662ecde33c3979bf02b793d392aca0403162Wink Saville    boolean getIccRecordsLoaded();
5749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
576767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Returns the ICC card interface for this phone, or null
5779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * if not applicable to underlying technology.
5789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
579767a662ecde33c3979bf02b793d392aca0403162Wink Saville    IccCard getIccCard();
5809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
582767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Answers a ringing or waiting call. Active calls, if any, go on hold.
5839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Answering occurs asynchronously, and final notification occurs via
5841c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link #registerForPreciseCallStateChanged(android.os.Handler, int,
5851c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * java.lang.Object) registerForPreciseCallStateChanged()}.
5869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
5879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @exception CallStateException when no call is ringing or waiting
5889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
5899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void acceptCall() throws CallStateException;
5909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
591767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
592767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Reject (ignore) a ringing call. In GSM, this means UDUB
593767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * (User Determined User Busy). Reject occurs asynchronously,
594767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * and final notification occurs via
5951c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link #registerForPreciseCallStateChanged(android.os.Handler, int,
5961c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * java.lang.Object) registerForPreciseCallStateChanged()}.
5979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
5989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @exception CallStateException when no call is ringing or waiting
5999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
6009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void rejectCall() throws CallStateException;
6019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
602767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
6039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Places any active calls on hold, and makes any held calls
6049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  active. Switch occurs asynchronously and may fail.
605767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Final notification occurs via
6061c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link #registerForPreciseCallStateChanged(android.os.Handler, int,
6071c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * java.lang.Object) registerForPreciseCallStateChanged()}.
6089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
6099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @exception CallStateException if a call is ringing, waiting, or
6109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * dialing/alerting. In these cases, this operation may not be performed.
6119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
6129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void switchHoldingAndActive() throws CallStateException;
6139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
615767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Whether or not the phone can conference in the current phone
6169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * state--that is, one call holding and one call active.
617767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @return true if the phone can conference; false otherwise.
6189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
6199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean canConference();
6209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
622767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Conferences holding and active. Conference occurs asynchronously
623767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * and may fail. Final notification occurs via
6241c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link #registerForPreciseCallStateChanged(android.os.Handler, int,
6251c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * java.lang.Object) registerForPreciseCallStateChanged()}.
626767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
6279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @exception CallStateException if canConference() would return false.
6289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In these cases, this operation may not be performed.
6299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
6309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void conference() throws CallStateException;
6319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
633767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Enable or disable enhanced Voice Privacy (VP). If enhanced VP is
634767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * disabled, normal VP is enabled.
635767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
636767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param enable whether true or false to enable or disable.
637767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param onComplete a callback message when the action is completed.
638767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
639767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void enableEnhancedVoicePrivacy(boolean enable, Message onComplete);
640767a662ecde33c3979bf02b793d392aca0403162Wink Saville
641767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
642767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Get the currently set Voice Privacy (VP) mode.
643767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
644767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param onComplete a callback message when the action is completed.
645767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
646767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void getEnhancedVoicePrivacy(Message onComplete);
647767a662ecde33c3979bf02b793d392aca0403162Wink Saville
648767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
6499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Whether or not the phone can do explicit call transfer in the current
6509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * phone state--that is, one call holding and one call active.
6519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the phone can do explicit call transfer; false otherwise.
6529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
6539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean canTransfer();
6549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
6569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Connects the two calls and disconnects the subscriber from both calls
6579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Explicit Call Transfer occurs asynchronously
6589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * and may fail. 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 canTransfer() would return false.
6639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In these cases, this operation may not be performed.
6649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
6659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void explicitCallTransfer() throws CallStateException;
6669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
6689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Clears all DISCONNECTED connections from Call connection lists.
6699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Calls that were in the DISCONNECTED state become idle. This occurs
6709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * synchronously.
6719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
6729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void clearDisconnected();
6739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
675767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
676767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Gets the foreground call object, which represents all connections that
677767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * are dialing or active (all connections
6789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * that have their audio path connected).<p>
6799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
6809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The foreground call is a singleton object. It is constant for the life
6819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of this phone. It is never null.<p>
682767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
6839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The foreground call will only ever be in one of these states:
684767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * IDLE, ACTIVE, DIALING, ALERTING, or DISCONNECTED.
6859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
6869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * State change notification is available via
6871c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link #registerForPreciseCallStateChanged(android.os.Handler, int,
6881c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * java.lang.Object) registerForPreciseCallStateChanged()}.
6899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
6909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Call getForegroundCall();
6919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
692767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
6939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Gets the background call object, which represents all connections that
6949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * are holding (all connections that have been accepted or connected, but
6959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * do not have their audio path connected). <p>
6969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
6979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The background call is a singleton object. It is constant for the life
6989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of this phone object . It is never null.<p>
699767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
7009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The background call will only ever be in one of these states:
7019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * IDLE, HOLDING or DISCONNECTED.
7029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
7039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * State change notification is available via
7041c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link #registerForPreciseCallStateChanged(android.os.Handler, int,
7051c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * java.lang.Object) registerForPreciseCallStateChanged()}.
7069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Call getBackgroundCall();
7089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
709767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
710767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Gets the ringing call object, which represents an incoming
7119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * connection (if present) that is pending answer/accept. (This connection
7129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * may be RINGING or WAITING, and there may be only one.)<p>
7139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The ringing call is a singleton object. It is constant for the life
7159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of this phone. It is never null.<p>
716767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
7179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The ringing call will only ever be in one of these states:
7189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * IDLE, INCOMING, WAITING or DISCONNECTED.
7199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
7209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * State change notification is available via
7211c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link #registerForPreciseCallStateChanged(android.os.Handler, int,
7221c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * java.lang.Object) registerForPreciseCallStateChanged()}.
7239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Call getRingingCall();
7259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
726767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
7279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Initiate a new voice connection. This happens asynchronously, so you
7289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * cannot assume the audio path is connected (or a call index has been
7299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * assigned) until PhoneStateChanged notification has occurred.
7309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
7319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @exception CallStateException if a new outgoing call is not currently
732767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * possible because no more call slots exist or a call exists that is
733767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * dialing, alerting, ringing, or waiting.  Other errors are
7349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * handled asynchronously.
7359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Connection dial(String dialString) throws CallStateException;
7379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
7399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Handles PIN MMI commands (PIN/PIN2/PUK/PUK2), which are initiated
7409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * without SEND (so <code>dial</code> is not appropriate).
741767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
7429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param dialString the MMI command to be executed.
7439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if MMI command is executed.
7449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean handlePinMmi(String dialString);
7469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
7489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Handles in-call MMI commands. While in a call, or while receiving a
7499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * call, use this to execute MMI commands.
7509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * see 3GPP 20.030, section 6.5.5.1 for specs on the allowed MMI commands.
7519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
7529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param command the MMI command to be executed.
7539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the MMI command is executed.
7549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @throws CallStateException
7559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean handleInCallMmiCommands(String command) throws CallStateException;
7579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
759767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Play a DTMF tone on the active call. Ignored if there is no active call.
7609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param c should be one of 0-9, '*' or '#'. Other values will be
7619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * silently ignored.
7629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void sendDtmf(char c);
7649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
7669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Start to paly a DTMF tone on the active call. Ignored if there is no active call
7679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * or there is a playing DTMF tone.
7689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param c should be one of 0-9, '*' or '#'. Other values will be
7699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * silently ignored.
7709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void startDtmf(char c);
7729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
7749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Stop the playing DTMF tone. Ignored if there is no playing DTMF
7759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * tone or no active call.
7769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void stopDtmf();
7789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
779e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
780dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * send burst DTMF tone, it can send the string as single character or multiple character
781dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * ignore if there is no active call or not valid digits string.
782dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Valid digit means only includes characters ISO-LATIN characters 0-9, *, #
783dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * The difference between sendDtmf and sendBurstDtmf is sendDtmf only sends one character,
784dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * this api can send single character and multiple character, also, this api has response
785dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * back to caller.
786dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *
787dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param dtmfString is string representing the dialing digit(s) in the active call
788dafa22a3ef9328c72319aeec605f6a6d20e46080jsh     * @param on the DTMF ON length in milliseconds, or 0 for default
789dafa22a3ef9328c72319aeec605f6a6d20e46080jsh     * @param off the DTMF OFF length in milliseconds, or 0 for default
790dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param onCompelte is the callback message when the action is processed by BP
791dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *
792e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
793dafa22a3ef9328c72319aeec605f6a6d20e46080jsh    void sendBurstDtmf(String dtmfString, int on, int off, Message onComplete);
7949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
796767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Sets the radio power on/off state (off is sometimes
797767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * called "airplane mode"). Current state can be gotten via
798767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * {@link #getServiceState()}.{@link
7999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * android.telephony.ServiceState#getState() getState()}.
800767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <strong>Note: </strong>This request is asynchronous.
8019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * getServiceState().getState() will not change immediately after this call.
802767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * registerForServiceStateChanged() to find out when the
8039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * request is complete.
8049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
805767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param power true means "on", false means "off".
8069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setRadioPower(boolean power);
8089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
809767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
8109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get voice message waiting indicator status. No change notification
8119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * available on this interface. Use PhoneStateNotifier or similar instead.
8129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
8139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if there is a voice message waiting
8149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean getMessageWaitingIndicator();
8169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get voice call forwarding indicator status. No change notification
8199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * available on this interface. Use PhoneStateNotifier or similar instead.
8209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
8219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if there is a voice call forwarding
8229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean getCallForwardingIndicator();
8249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get the line 1 phone number (MSISDN).<p>
8279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
8289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return phone number. May return null if not
8299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * available or the SIM is not ready
8309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getLine1Number();
8329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the alpha tag associated with the msisdn number.
8359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If there is no alpha tag associated or the record is not yet available,
8369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * returns a default localized string. <p>
8379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getLine1AlphaTag();
8399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Sets the MSISDN phone number in the SIM card.
8429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
8439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param alphaTag the alpha tag associated with the MSISDN phone number
8449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *        (see getMsisdnAlphaTag)
8459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param number the new MSISDN phone number to be set on the SIM.
8469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
8479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setLine1Number(String alphaTag, String number, Message onComplete);
8499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
851767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Get the voice mail access phone number. Typically dialed when the
852767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * user holds the "1" key in the phone app. May return null if not
8539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * available or the SIM is not ready.<p>
8549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getVoiceMailNumber();
8569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
858dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Returns unread voicemail count. This count is shown when the  voicemail
859dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * notification is expanded.<p>
860dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
861ce099c3226b33b43e0dd5d1f24347b14a2223ee1David Krause    int getVoiceMessageCount();
862dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
863dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
8649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the alpha tag associated with the voice mail number.
8659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If there is no alpha tag associated or the record is not yet available,
8669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * returns a default localized string. <p>
867767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
868767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Please use this value instead of some other localized string when
8699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * showing a name for this number in the UI. For example, call log
8709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * entries should show this alpha tag. <p>
8719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
8729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Usage of this alpha tag in the UI is a common carrier requirement.
8739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getVoiceMailAlphaTag();
8759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * setVoiceMailNumber
8789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * sets the voicemail number in the SIM card.
8799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
8809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param alphaTag the alpha tag associated with the voice mail number
8819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *        (see getVoiceMailAlphaTag)
8829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param voiceMailNumber the new voicemail number to be set on the SIM.
8839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
8849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setVoiceMailNumber(String alphaTag,
8869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            String voiceMailNumber,
8879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            Message onComplete);
8889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * getCallForwardingOptions
891767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * gets a call forwarding option. The return value of
892767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * ((AsyncResult)onComplete.obj) is an array of CallForwardInfo.
893767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
894767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param commandInterfaceCFReason is one of the valid call forwarding
895767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        CF_REASONS, as defined in
896dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *        <code>com.android.internal.telephony.CommandsInterface.</code>
8979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
898767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        @see com.android.internal.telephony.CallForwardInfo for details.
8999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
9009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void getCallForwardingOption(int commandInterfaceCFReason,
9019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                  Message onComplete);
902767a662ecde33c3979bf02b793d392aca0403162Wink Saville
9039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
9049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * setCallForwardingOptions
9059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * sets a call forwarding option.
906767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
907767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param commandInterfaceCFReason is one of the valid call forwarding
908767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        CF_REASONS, as defined in
909dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *        <code>com.android.internal.telephony.CommandsInterface.</code>
910767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param commandInterfaceCFAction is one of the valid call forwarding
911767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        CF_ACTIONS, as defined in
912dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *        <code>com.android.internal.telephony.CommandsInterface.</code>
913767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param dialingNumber is the target phone number to forward calls to
9149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param timerSeconds is used by CFNRy to indicate the timeout before
9159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *        forwarding is attempted.
9169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
9179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
9189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setCallForwardingOption(int commandInterfaceCFReason,
9199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                 int commandInterfaceCFAction,
9209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                 String dialingNumber,
9219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                 int timerSeconds,
9229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                 Message onComplete);
923767a662ecde33c3979bf02b793d392aca0403162Wink Saville
9249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
9259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * getOutgoingCallerIdDisplay
926767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * gets outgoing caller id display. The return value of
9279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * ((AsyncResult)onComplete.obj) is an array of int, with a length of 2.
928767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
9299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
930767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        @see com.android.internal.telephony.CommandsInterface.getCLIR for details.
9319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
9329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void getOutgoingCallerIdDisplay(Message onComplete);
933767a662ecde33c3979bf02b793d392aca0403162Wink Saville
9349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
9359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * setOutgoingCallerIdDisplay
936767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * sets a call forwarding option.
937767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
938767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param commandInterfaceCLIRMode is one of the valid call CLIR
939767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        modes, as defined in
940767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        <code>com.android.internal.telephony.CommandsInterface./code>
9419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
9429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
9439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setOutgoingCallerIdDisplay(int commandInterfaceCLIRMode,
9449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                    Message onComplete);
945767a662ecde33c3979bf02b793d392aca0403162Wink Saville
9469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
9479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * getCallWaiting
948767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * gets call waiting activation state. The return value of
9499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * ((AsyncResult)onComplete.obj) is an array of int, with a length of 1.
950767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
9519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
952767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        @see com.android.internal.telephony.CommandsInterface.queryCallWaiting for details.
9539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
9549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void getCallWaiting(Message onComplete);
955767a662ecde33c3979bf02b793d392aca0403162Wink Saville
9569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
9579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * setCallWaiting
958767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * sets a call forwarding option.
959767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
960767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param enable is a boolean representing the state that you are
9619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *        requesting, true for enabled, false for disabled.
9629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
9639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
9649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setCallWaiting(boolean enable, Message onComplete);
965767a662ecde33c3979bf02b793d392aca0403162Wink Saville
9669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
9679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Scan available networks. This method is asynchronous; .
9689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * On completion, <code>response.obj</code> is set to an AsyncResult with
9699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * one of the following members:.<p>
9709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *<ul>
971767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <li><code>response.obj.result</code> will be a <code>List</code> of
972767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <code>com.android.internal.telephony.gsm.NetworkInfo</code> objects, or</li>
973767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <li><code>response.obj.exception</code> will be set with an exception
9749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * on failure.</li>
9759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * </ul>
9769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
977767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void getAvailableNetworks(Message response);
9789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
9809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Switches network selection mode to "automatic", re-scanning and
9819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * re-selecting a network if appropriate.
982767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
983767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response The message to dispatch when the network selection
9849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * is complete.
985767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
986767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @see #selectNetworkManually(com.android.internal.telephony.gsm.NetworkInfo,
9879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * android.os.Message )
9889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
9899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setNetworkSelectionModeAutomatic(Message response);
9909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
992767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Manually selects a network. <code>response</code> is
9939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * dispatched when this is complete.  <code>response.obj</code> will be
9949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * an AsyncResult, and <code>response.obj.exception</code> will be non-null
9959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * on failure.
996767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
9979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see #setNetworkSelectionModeAutomatic(Message)
9989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
999767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void selectNetworkManually(NetworkInfo network,
10009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            Message response);
10019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
10039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Requests to set the preferred network type for searching and registering
10049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (CS/PS domain, RAT, and operation mode)
10059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param networkType one of  NT_*_TYPE
10069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param response is callback message
10079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
10089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setPreferredNetworkType(int networkType, Message response);
10099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
10119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Query the preferred network type setting
10129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
10139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param response is callback message to report one of  NT_*_TYPE
10149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
10159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void getPreferredNetworkType(Message response);
10169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1018c06ce125408696fd49c7fa9e1189ecb61804007ajsh     * Gets the default SMSC address.
1019c06ce125408696fd49c7fa9e1189ecb61804007ajsh     *
1020c06ce125408696fd49c7fa9e1189ecb61804007ajsh     * @param result Callback message contains the SMSC address.
1021c06ce125408696fd49c7fa9e1189ecb61804007ajsh     */
1022c06ce125408696fd49c7fa9e1189ecb61804007ajsh    void getSmscAddress(Message result);
1023c06ce125408696fd49c7fa9e1189ecb61804007ajsh
1024c06ce125408696fd49c7fa9e1189ecb61804007ajsh    /**
1025c06ce125408696fd49c7fa9e1189ecb61804007ajsh     * Sets the default SMSC address.
1026c06ce125408696fd49c7fa9e1189ecb61804007ajsh     *
1027c06ce125408696fd49c7fa9e1189ecb61804007ajsh     * @param address new SMSC address
1028c06ce125408696fd49c7fa9e1189ecb61804007ajsh     * @param result Callback message is empty on completion
1029c06ce125408696fd49c7fa9e1189ecb61804007ajsh     */
1030c06ce125408696fd49c7fa9e1189ecb61804007ajsh    void setSmscAddress(String address, Message result);
1031c06ce125408696fd49c7fa9e1189ecb61804007ajsh
1032c06ce125408696fd49c7fa9e1189ecb61804007ajsh    /**
10339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Query neighboring cell IDs.  <code>response</code> is dispatched when
10349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * this is complete.  <code>response.obj</code> will be an AsyncResult,
10359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * and <code>response.obj.exception</code> will be non-null on failure.
10369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * On success, <code>AsyncResult.result</code> will be a <code>String[]</code>
10379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * containing the neighboring cell IDs.  Index 0 will contain the count
10389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of available cell IDs.  Cell IDs are in hexadecimal format.
10399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
10409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param response callback message that is dispatched when the query
1041767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * completes.
10429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
10439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void getNeighboringCids(Message response);
10449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
10469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Sets an event to be fired when the telephony system processes
10479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * a post-dial character on an outgoing call.<p>
10489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
10499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Messages of type <code>what</code> will be sent to <code>h</code>.
10509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The <code>obj</code> field of these Message's will be instances of
10519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>AsyncResult</code>. <code>Message.obj.result</code> will be
10529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * a Connection object.<p>
10539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1054767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Message.arg1 will be the post dial character being processed,
10559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * or 0 ('\0') if end of string.<p>
10569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1057767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * If Connection.getPostDialState() == WAIT,
1058767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * the application must call
1059767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * {@link com.android.internal.telephony.Connection#proceedAfterWaitChar()
1060767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Connection.proceedAfterWaitChar()} or
1061767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * {@link com.android.internal.telephony.Connection#cancelPostDial()
10629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Connection.cancelPostDial()}
1063767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * for the telephony system to continue playing the post-dial
10649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * DTMF sequence.<p>
10659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1066767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * If Connection.getPostDialState() == WILD,
1067767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * the application must call
10689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link com.android.internal.telephony.Connection#proceedAfterWildChar
10699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Connection.proceedAfterWildChar()}
1070767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * or
1071767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * {@link com.android.internal.telephony.Connection#cancelPostDial()
10729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Connection.cancelPostDial()}
1073767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * for the telephony system to continue playing the
10749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * post-dial DTMF sequence.<p>
1075767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
10769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Only one post dial character handler may be set. <p>
10779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Calling this method with "h" equal to null unsets this handler.<p>
10789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
10799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setOnPostDialCharacter(Handler h, int what, Object obj);
10809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1083767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Mutes or unmutes the microphone for the active call. The microphone
1084767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * is automatically unmuted if a call is answered, dialed, or resumed
10859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * from a holding state.
1086767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1087767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param muted true to mute the microphone,
10889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * false to activate the microphone.
10899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
10909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setMute(boolean muted);
10929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1094767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Gets current mute status. Use
10951c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link #registerForPreciseCallStateChanged(android.os.Handler, int,
10961c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * java.lang.Object) registerForPreciseCallStateChanged()}
10979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * as a change notifcation, although presently phone state changed is not
10989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * fired when setMute() is called.
10999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
11009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true is muting, false is unmuting
11019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean getMute();
11039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
11059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Invokes RIL_REQUEST_OEM_HOOK_RAW on RIL implementation.
1106767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
11079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param data The data for the request.
1108767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response <strong>On success</strong>,
11099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (byte[])(((AsyncResult)response.obj).result)
1110767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <strong>On failure</strong>,
1111767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * (((AsyncResult)response.obj).result) == null and
11129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (((AsyncResult)response.obj).exception) being an instance of
11139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * com.android.internal.telephony.gsm.CommandException
11149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
11159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see #invokeOemRilRequestRaw(byte[], android.os.Message)
11169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void invokeOemRilRequestRaw(byte[] data, Message response);
11189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
11209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Invokes RIL_REQUEST_OEM_HOOK_Strings on RIL implementation.
1121767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
11229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param strings The strings to make available as the request data.
1123767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response <strong>On success</strong>, "response" bytes is
11249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * made available as:
11259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (String[])(((AsyncResult)response.obj).result).
1126767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <strong>On failure</strong>,
1127767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * (((AsyncResult)response.obj).result) == null and
11289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (((AsyncResult)response.obj).exception) being an instance of
11299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * com.android.internal.telephony.gsm.CommandException
11309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
11319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see #invokeOemRilRequestStrings(java.lang.String[], android.os.Message)
11329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void invokeOemRilRequestStrings(String[] strings, Message response);
11349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
11369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get the current active PDP context list
11379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1138767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @deprecated
11399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param response <strong>On success</strong>, "response" bytes is
11409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * made available as:
11419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (String[])(((AsyncResult)response.obj).result).
11429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <strong>On failure</strong>,
11439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (((AsyncResult)response.obj).result) == null and
11449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (((AsyncResult)response.obj).exception) being an instance of
11459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * com.android.internal.telephony.gsm.CommandException
11469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void getPdpContextList(Message response);
11489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1150767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Get the current active Data Call list, substitutes getPdpContextList
1151767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1152767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response <strong>On success</strong>, "response" bytes is
1153767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * made available as:
1154767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * (String[])(((AsyncResult)response.obj).result).
1155767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <strong>On failure</strong>,
1156767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * (((AsyncResult)response.obj).result) == null and
1157767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * (((AsyncResult)response.obj).exception) being an instance of
1158767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * com.android.internal.telephony.gsm.CommandException
1159767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1160767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void getDataCallList(Message response);
1161767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1162767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
11639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get current mutiple PDP link status
1164767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1165767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @deprecated
11669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return list of pdp link connections
11679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    List<PdpConnection> getCurrentPdpList ();
11699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1171767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Get current mutiple data connection status
1172767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1173767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @return list of data connections
1174767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1175767a662ecde33c3979bf02b793d392aca0403162Wink Saville    List<DataConnection> getCurrentDataConnectionList ();
1176767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1177767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
11789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Udpate LAC and CID in service state for currnet GSM netowrk registration
11799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
11809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If get different LAC and/or CID, notifyServiceState will be sent
11819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
11829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param
11839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <strong>On failure</strong>,
11849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (((AsyncResult)response.obj).result) == null and
11859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (((AsyncResult)response.obj).exception) being an instance of
11869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * com.android.internal.telephony.gsm.CommandException
11879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void updateServiceLocation(Message response);
11899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
11919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Enable location update notifications.
11929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void enableLocationUpdates();
11949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
11969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Disable location update notifications.
11979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void disableLocationUpdates();
11999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1201767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * For unit tests; don't send notifications to "Phone"
12029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * mailbox registrants if true.
12039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setUnitTestMode(boolean f);
1205767a662ecde33c3979bf02b793d392aca0403162Wink Saville
12069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true If unit test mode is enabled
12089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean getUnitTestMode();
12109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Assign a specified band for RF configuration.
12139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
12149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param bandMode one of BM_*_BAND
12159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param response is callback message
12169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setBandMode(int bandMode, Message response);
12189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Query the list of band mode supported by RF.
12219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
12229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param response is callback message
12239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *        ((AsyncResult)response.obj).result  is an int[] with every
12249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *        element representing one avialable BM_*_BAND
12259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void queryAvailableBandMode(Message response);
12279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if enable data connection on roaming
12309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean getDataRoamingEnabled();
12329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param enable set true if enable data connection on roaming
12359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setDataRoamingEnabled(boolean enable);
12379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1239767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *  Query the CDMA roaming preference setting
1240767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1241767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response is callback message to report one of  CDMA_RM_*
1242767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1243767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void queryCdmaRoamingPreference(Message response);
1244767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1245767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1246767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *  Requests to set the CDMA roaming preference
1247767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param cdmaRoamingType one of  CDMA_RM_*
1248767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response is callback message
1249767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1250767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void setCdmaRoamingPreference(int cdmaRoamingType, Message response);
1251767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1252767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1253767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *  Requests to set the CDMA subscription mode
1254767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param cdmaSubscriptionType one of  CDMA_SUBSCRIPTION_*
1255767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response is callback message
1256767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1257767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void setCdmaSubscription(int cdmaSubscriptionType, Message response);
1258767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1259767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
12609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If this is a simulated phone interface, returns a SimulatedRadioControl.
1261767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @ return A SimulatedRadioControl if this is a simulated interface;
12629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * otherwise, null.
12639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    SimulatedRadioControl getSimulatedRadioControl();
12659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Allow mobile data connections.
12689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return {@code true} if the operation started successfully
12699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <br/>{@code false} if it
12709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * failed immediately.<br/>
12719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Even in the {@code true} case, it may still fail later
12729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * during setup, in which case an asynchronous indication will
12739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * be supplied.
12749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean enableDataConnectivity();
12769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Disallow mobile data connections, and terminate any that
12799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * are in progress.
12809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return {@code true} if the operation started successfully
12819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <br/>{@code false} if it
12829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * failed immediately.<br/>
12839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Even in the {@code true} case, it may still fail later
12849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * during setup, in which case an asynchronous indication will
12859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * be supplied.
12869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean disableDataConnectivity();
12889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1290c6d6b687af385d2a4e5f5210a9111d7b1acc233cWink Saville     * Report the current state of data connectivity (enabled or disabled)
1291c6d6b687af385d2a4e5f5210a9111d7b1acc233cWink Saville     * @return {@code false} if data connectivity has been explicitly disabled,
1292c6d6b687af385d2a4e5f5210a9111d7b1acc233cWink Saville     * {@code true} otherwise.
1293c6d6b687af385d2a4e5f5210a9111d7b1acc233cWink Saville     */
1294c6d6b687af385d2a4e5f5210a9111d7b1acc233cWink Saville    boolean isDataConnectivityEnabled();
1295c6d6b687af385d2a4e5f5210a9111d7b1acc233cWink Saville
1296c6d6b687af385d2a4e5f5210a9111d7b1acc233cWink Saville    /**
12979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Enables the specified APN type. Only works for "special" APN types,
12989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * i.e., not the default APN.
12999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param type The desired APN type. Cannot be {@link #APN_TYPE_DEFAULT}.
13009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return <code>APN_ALREADY_ACTIVE</code> if the current APN
13019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * services the requested type.<br/>
13029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>APN_TYPE_NOT_AVAILABLE</code> if the carrier does not
13039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * support the requested APN.<br/>
13049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>APN_REQUEST_STARTED</code> if the request has been initiated.<br/>
13059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>APN_REQUEST_FAILED</code> if the request was invalid.<br/>
13069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * A <code>ACTION_ANY_DATA_CONNECTION_STATE_CHANGED</code> broadcast will
13079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * indicate connection state progress.
13089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int enableApnType(String type);
13109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
13129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Disables the specified APN type, and switches back to the default APN,
13139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * if necessary. Switching to the default APN will not happen if default
13149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * data traffic has been explicitly disabled via a call to {@link #disableDataConnectivity}.
13159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p/>Only works for "special" APN types,
13169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * i.e., not the default APN.
13179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param type The desired APN type. Cannot be {@link #APN_TYPE_DEFAULT}.
13189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return <code>APN_ALREADY_ACTIVE</code> if the default APN
13199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * is already active.<br/>
13209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>APN_REQUEST_STARTED</code> if the request to switch to the default
13219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * APN has been initiated.<br/>
13229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>APN_REQUEST_FAILED</code> if the request was invalid.<br/>
13239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * A <code>ACTION_ANY_DATA_CONNECTION_STATE_CHANGED</code> broadcast will
13249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * indicate connection state progress.
13259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int disableApnType(String type);
13279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
13299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Report on whether data connectivity is allowed.
13309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isDataConnectivityPossible();
13329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
13349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the name of the network interface used by the specified APN type.
13359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getInterfaceName(String apnType);
13379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
13399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the IP address of the network interface used by the specified
13409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * APN type.
13419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getIpAddress(String apnType);
13439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
13459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the gateway for the network interface used by the specified APN
13469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * type.
13479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getGateway(String apnType);
13499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
13519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the DNS servers for the network interface used by the specified
13529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * APN type.
13539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String[] getDnsServers(String apnType);
13559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1357767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Retrieves the unique device ID, e.g., IMEI for GSM phones and MEID for CDMA phones.
13589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getDeviceId();
13609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
13629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Retrieves the software version number for the device, e.g., IMEI/SV
13639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * for GSM phones.
13649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getDeviceSvn();
13669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
13689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Retrieves the unique sbuscriber ID, e.g., IMSI for GSM phones.
13699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getSubscriberId();
13719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1373767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Retrieves the serial number of the ICC, if applicable.
1374767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1375767a662ecde33c3979bf02b793d392aca0403162Wink Saville    String getIccSerialNumber();
1376767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1377767a662ecde33c3979bf02b793d392aca0403162Wink Saville    //***** CDMA support methods
1378767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1379dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /*
1380dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * TODO(Moto) TODO(Teleca): can getCdmaMin, getEsn, getMeid use more generic calls
1381dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * already defined getXxxx above?
1382dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1383dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1384e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
1385e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Retrieves the MIN for CDMA phones.
1386e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
1387dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    String getCdmaMin();
1388767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1389767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
13909e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo     * Check if subscription data has been assigned to mMin
13919e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo     *
13929e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo     * return true if MIN info is ready; false otherwise.
13939e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo     */
13949e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo    boolean isMinInfoReady();
13959e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo
13969e652dcc213b96087ccadc730b1e6b1891cd02aeJinghui Guo    /**
139722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *  Retrieves PRL Version for CDMA phones
139822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
139922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    String getCdmaPrlVersion();
140022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
140122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
1402767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Retrieves the ESN for CDMA phones.
14039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1404767a662ecde33c3979bf02b793d392aca0403162Wink Saville    String getEsn();
1405767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1406767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1407767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Retrieves MEID for CDMA phones.
1408767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1409767a662ecde33c3979bf02b793d392aca0403162Wink Saville    String getMeid();
1410767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1411767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1412767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Retrieves the PhoneSubInfo of the Phone
1413767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1414767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public PhoneSubInfo getPhoneSubInfo();
1415767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1416767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1417767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Retrieves the IccSmsInterfaceManager of the Phone
1418767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1419767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public IccSmsInterfaceManager getIccSmsInterfaceManager();
1420767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1421767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1422767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Retrieves the IccPhoneBookInterfaceManager of the Phone
1423767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1424767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public IccPhoneBookInterfaceManager getIccPhoneBookInterfaceManager();
1425767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1426767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1427e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * setTTYMode
1428767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * sets a TTY mode option.
1429767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1430767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param enable is a boolean representing the state that you are
1431767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        requesting, true for enabled, false for disabled.
1432767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param onComplete a callback message when the action is completed
1433767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1434e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    void setTTYMode(int ttyMode, Message onComplete);
1435767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1436767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1437e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * queryTTYMode
1438767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * query the status of the TTY mode
1439767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1440767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param onComplete a callback message when the action is completed.
1441767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1442e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    void queryTTYMode(Message onComplete);
1443e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
1444e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
1445767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Activate or deactivate cell broadcast SMS.
1446767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1447767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param activate
1448767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *            0 = activate, 1 = deactivate
1449767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response
1450767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *            Callback message is empty on completion
1451767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1452767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void activateCellBroadcastSms(int activate, Message response);
1453767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1454767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1455767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Query the current configuration of cdma cell broadcast SMS.
1456767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1457767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response
1458767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *            Callback message is empty on completion
1459767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1460767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void getCellBroadcastSmsConfig(Message response);
1461767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1462767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1463767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Configure cell broadcast SMS.
1464767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1465e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * TODO: Change the configValuesArray to a RIL_BroadcastSMSConfig
1466e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     *
1467767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response
1468767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *            Callback message is empty on completion
1469767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1470767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void setCellBroadcastSmsConfig(int[] configValuesArray, Message response);
1471767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1472767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void notifyDataActivity();
1473e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
1474e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
1475e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Returns the CDMA ERI icon index to display
1476e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
1477e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    public int getCdmaEriIconIndex();
1478e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
1479e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
1480e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Returns the CDMA ERI icon mode,
1481e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * 0 - ON
1482e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * 1 - FLASHING
1483e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
1484e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    public int getCdmaEriIconMode();
1485e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
1486e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
1487e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Returns the CDMA ERI text,
1488e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
1489e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    public String getCdmaEriText();
1490e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
1491dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1492dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * request to exit emergency call back mode
1493dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * the caller should use setOnECMModeExitResponse
1494dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * to receive the emergency callback mode exit response
1495dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1496dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void exitEmergencyCallbackMode();
1497dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1498dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1499dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * this decides if the dial number is OTA(Over the air provision) number or not
1500dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param dialStr is string representing the dialing digit(s)
1501dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @return  true means the dialStr is OTA number, and false means the dialStr is not OTA number
1502dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1503dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    boolean isOtaSpNumber(String dialStr);
1504dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1505dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1506dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Register for notifications when CDMA call waiting comes
1507dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *
1508dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param h Handler that receives the notification message.
1509dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param what User-defined message code.
1510dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param obj User object.
1511dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1512dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void registerForCallWaiting(Handler h, int what, Object obj);
1513dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1514dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1515dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Unegister for notifications when CDMA Call waiting comes
1516dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param h Handler to be removed from the registrant list.
1517dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1518dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void unregisterForCallWaiting(Handler h);
1519dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1520dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1521dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1522dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Register for signal information notifications from the network.
1523dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Message.obj will contain an AsyncResult.
1524dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * AsyncResult.result will be a SuppServiceNotification instance.
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
1531dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void registerForSignalInfo(Handler h, int what, Object obj) ;
1532dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1533dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Unregisters for signal information notifications.
1534dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Extraneous calls are tolerated silently
1535dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *
1536dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param h Handler to be removed from the registrant list.
1537dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1538dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void unregisterForSignalInfo(Handler h);
1539dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1540dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1541dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Register for display information notifications from the network.
1542dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Message.obj will contain an AsyncResult.
1543dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * AsyncResult.result will be a SuppServiceNotification instance.
1544dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *
1545dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param h Handler that receives the notification message.
1546dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param what User-defined message code.
1547dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param obj User object.
1548dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1549dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void registerForDisplayInfo(Handler h, int what, Object obj);
1550dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1551dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1552dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Unregisters for display information notifications.
1553dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Extraneous calls are tolerated silently
1554dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *
1555dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param h Handler to be removed from the registrant list.
1556dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1557dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void unregisterForDisplayInfo(Handler h) ;
1558dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
155922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
156022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Register for CDMA number information record notification from the network.
156122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Message.obj will contain an AsyncResult.
156222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * AsyncResult.result will be a CdmaInformationRecords.CdmaNumberInfoRec
156322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * instance.
156422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
156522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler that receives the notification message.
156622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param what User-defined message code.
156722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param obj User object.
156822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
156922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void registerForNumberInfo(Handler h, int what, Object obj);
157022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
157122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
157222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Unregisters for number information record notifications.
157322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Extraneous calls are tolerated silently
157422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
157522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler to be removed from the registrant list.
157622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
157722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void unregisterForNumberInfo(Handler h);
157822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
157922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
158022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Register for CDMA redirected number information record notification
158122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * from the network.
158222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Message.obj will contain an AsyncResult.
158322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * AsyncResult.result will be a CdmaInformationRecords.CdmaRedirectingNumberInfoRec
158422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * instance.
158522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
158622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler that receives the notification message.
158722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param what User-defined message code.
158822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param obj User object.
158922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
159022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void registerForRedirectedNumberInfo(Handler h, int what, Object obj);
159122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
159222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
159322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Unregisters for redirected number information record notification.
159422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Extraneous calls are tolerated silently
159522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
159622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler to be removed from the registrant list.
159722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
159822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void unregisterForRedirectedNumberInfo(Handler h);
159922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
160022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
160122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Register for CDMA line control information record notification
160222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * from the network.
160322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Message.obj will contain an AsyncResult.
160422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * AsyncResult.result will be a CdmaInformationRecords.CdmaLineControlInfoRec
160522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * instance.
160622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
160722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler that receives the notification message.
160822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param what User-defined message code.
160922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param obj User object.
161022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
161122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void registerForLineControlInfo(Handler h, int what, Object obj);
161222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
161322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
161422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Unregisters for line control information notifications.
161522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Extraneous calls are tolerated silently
161622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
161722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler to be removed from the registrant list.
161822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
161922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void unregisterForLineControlInfo(Handler h);
162022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
162122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
162222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Register for CDMA T53 CLIR information record notifications
162322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * from the network.
162422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Message.obj will contain an AsyncResult.
162522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * AsyncResult.result will be a CdmaInformationRecords.CdmaT53ClirInfoRec
162622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * instance.
162722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
162822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler that receives the notification message.
162922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param what User-defined message code.
163022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param obj User object.
163122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
163222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void registerFoT53ClirlInfo(Handler h, int what, Object obj);
163322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
163422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
163522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Unregisters for T53 CLIR information record notification
163622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Extraneous calls are tolerated silently
163722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
163822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler to be removed from the registrant list.
163922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
164022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void unregisterForT53ClirInfo(Handler h);
164122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
164222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
164322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Register for CDMA T53 audio control information record notifications
164422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * from the network.
164522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Message.obj will contain an AsyncResult.
164622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * AsyncResult.result will be a CdmaInformationRecords.CdmaT53AudioControlInfoRec
164722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * instance.
164822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
164922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler that receives the notification message.
165022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param what User-defined message code.
165122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param obj User object.
165222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
165322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void registerForT53AudioControlInfo(Handler h, int what, Object obj);
165422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
165522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
165622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Unregisters for T53 audio control information record notifications.
165722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Extraneous calls are tolerated silently
165822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
165922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler to be removed from the registrant list.
166022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
166122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void unregisterForT53AudioControlInfo(Handler h);
1662dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1663dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1664dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * registers for exit emergency call back mode request response
1665dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *
1666dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param h Handler that receives the notification message.
1667dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param what User-defined message code.
1668dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param obj User object.
1669dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1670dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1671dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void setOnEcbModeExitResponse(Handler h, int what, Object obj);
1672dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1673dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1674dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Unregisters for exit emergency call back mode request response
1675dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *
1676dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param h Handler to be removed from the registrant list.
1677dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1678dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void unsetOnEcbModeExitResponse(Handler h);
1679dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1680dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
16819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
1682