Phone.java revision 1c42769339d8fe98ecb2698c64e7dc6672e3d59d
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";
1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String DATA_APN_TYPE_KEY = "apnType";
1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String DATA_APN_KEY = "apn";
1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String DATA_IFACE_NAME_KEY = "iface";
1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String NETWORK_UNAVAILABLE_KEY = "networkUnvailable";
106dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    static final String PHONE_IN_ECM_STATE = "phoneinECMState";
1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * APN types for data connections.  These are usage categories for an APN
1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * entry.  One APN entry may support multiple APN types, eg, a single APN
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * may service regular internet traffic ("default") as well as MMS-specific
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * connections.<br/>
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * APN_TYPE_ALL is a special type to indicate that this APN entry can
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * service all data connections.
1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String APN_TYPE_ALL = "*";
1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /** APN type for default data traffic */
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String APN_TYPE_DEFAULT = "default";
1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /** APN type for MMS traffic */
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String APN_TYPE_MMS = "mms";
12142ad56ead40f6c5986bd2d298b1d36f42da489a1Mike Lockwood    /** APN type for SUPL assisted GPS */
12242ad56ead40f6c5986bd2d298b1d36f42da489a1Mike Lockwood    static final String APN_TYPE_SUPL = "supl";
1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // "Features" accessible through the connectivity manager
1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String FEATURE_ENABLE_MMS = "enableMMS";
12642ad56ead40f6c5986bd2d298b1d36f42da489a1Mike Lockwood    static final String FEATURE_ENABLE_SUPL = "enableSUPL";
1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Return codes for <code>enableApnType()</code>
1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int APN_ALREADY_ACTIVE     = 0;
1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int APN_REQUEST_STARTED    = 1;
1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int APN_TYPE_NOT_AVAILABLE = 2;
1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int APN_REQUEST_FAILED     = 3;
1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Optional reasons for disconnect and connect
1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_ROAMING_ON = "roamingOn";
1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_ROAMING_OFF = "roamingOff";
1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_DATA_DISABLED = "dataDisabled";
1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_DATA_ENABLED = "dataEnabled";
1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_GPRS_ATTACHED = "gprsAttached";
1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_GPRS_DETACHED = "gprsDetached";
146767a662ecde33c3979bf02b793d392aca0403162Wink Saville    static final String REASON_CDMA_DATA_ATTACHED = "cdmaDataAttached";
147767a662ecde33c3979bf02b793d392aca0403162Wink Saville    static final String REASON_CDMA_DATA_DETACHED = "cdmaDataDetached";
1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_APN_CHANGED = "apnChanged";
1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_APN_SWITCHED = "apnSwitched";
1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_RESTORE_DEFAULT_APN = "restoreDefaultApn";
1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_RADIO_TURNED_OFF = "radioTurnedOff";
1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_PDP_RESET = "pdpReset";
1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_VOICE_CALL_ENDED = "2GVoiceCallEnded";
1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_VOICE_CALL_STARTED = "2GVoiceCallStarted";
1554df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project    static final String REASON_PS_RESTRICT_ENABLED = "psRestrictEnabled";
1564df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project    static final String REASON_PS_RESTRICT_DISABLED = "psRestrictDisabled";
157ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project    static final String REASON_SIM_LOADED = "simLoaded";
158e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
1594df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project    // Used for band mode selection methods
1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int BM_UNSPECIFIED = 0; // selected by baseband automatically
1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int BM_EURO_BAND   = 1; // GSM-900 / DCS-1800 / WCDMA-IMT-2000
1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int BM_US_BAND     = 2; // GSM-850 / PCS-1900 / WCDMA-850 / WCDMA-PCS-1900
1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int BM_JPN_BAND    = 3; // WCDMA-800 / WCDMA-IMT-2000
1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int BM_AUS_BAND    = 4; // GSM-900 / DCS-1800 / WCDMA-850 / WCDMA-IMT-2000
1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int BM_AUS2_BAND   = 5; // GSM-900 / DCS-1800 / WCDMA-850
1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int BM_BOUNDARY    = 6; // upper band boundary
1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // Used for preferred network type
169767a662ecde33c3979bf02b793d392aca0403162Wink Saville    // Note NT_* substitute RILConstants.NETWORK_MODE_* above the Phone
170ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh    int NT_MODE_WCDMA_PREF   = RILConstants.NETWORK_MODE_WCDMA_PREF;
171ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh    int NT_MODE_GSM_ONLY     = RILConstants.NETWORK_MODE_GSM_ONLY;
172ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh    int NT_MODE_WCDMA_ONLY   = RILConstants.NETWORK_MODE_WCDMA_ONLY;
173ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh    int NT_MODE_GSM_UMTS     = RILConstants.NETWORK_MODE_GSM_UMTS;
174ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh
175ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh    int NT_MODE_CDMA         = RILConstants.NETWORK_MODE_CDMA;
176ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh
177ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh    int NT_MODE_CDMA_NO_EVDO = RILConstants.NETWORK_MODE_CDMA_NO_EVDO;
178ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh    int NT_MODE_EVDO_NO_CDMA = RILConstants.NETWORK_MODE_EVDO_NO_CDMA;
179ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh    int NT_MODE_GLOBAL       = RILConstants.NETWORK_MODE_GLOBAL;
180ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh
181ee748d37b01b3affb72b701d95ba20c189887b5fJaikumar Ganesh    int PREFERRED_NT_MODE    = RILConstants.PREFERRED_NETWORK_MODE;
182767a662ecde33c3979bf02b793d392aca0403162Wink Saville
183767a662ecde33c3979bf02b793d392aca0403162Wink Saville
184767a662ecde33c3979bf02b793d392aca0403162Wink Saville    // Used for CDMA roaming mode
185e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int CDMA_RM_HOME        = 0;  // Home Networks only, as defined in PRL
186e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int CDMA_RM_AFFILIATED  = 1;  // Roaming an Affiliated networks, as defined in PRL
187e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int CDMA_RM_ANY         = 2;  // Roaming on Any Network, as defined in PRL
188767a662ecde33c3979bf02b793d392aca0403162Wink Saville
189767a662ecde33c3979bf02b793d392aca0403162Wink Saville    // Used for CDMA subscription mode
190e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int CDMA_SUBSCRIPTION_RUIM_SIM = 0; // RUIM/SIM (default)
191e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int CDMA_SUBSCRIPTION_NV       = 1; // NV -> non-volatile memory
192e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
193e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int PREFERRED_CDMA_SUBSCRIPTION = CDMA_SUBSCRIPTION_NV;
194e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
195e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int TTY_MODE_OFF = 0;
196e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int TTY_MODE_FULL = 1;
197e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int TTY_MODE_HCO = 2;
198e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    static final int TTY_MODE_VCO = 3;
199767a662ecde33c3979bf02b793d392aca0403162Wink Saville
200dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     /**
201dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * CDMA OTA PROVISION STATUS, the same as RIL_CDMA_OTA_Status in ril.h
202dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
203dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
204dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_SPL_UNLOCKED = 0;
205dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_SPC_RETRIES_EXCEEDED = 1;
206dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_A_KEY_EXCHANGED = 2;
207dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_SSD_UPDATED = 3;
208dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_NAM_DOWNLOADED = 4;
209dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_MDN_DOWNLOADED = 5;
210dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_IMSI_DOWNLOADED = 6;
211dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_PRL_DOWNLOADED = 7;
212dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_COMMITTED = 8;
213dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_OTAPA_STARTED = 9;
214dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_OTAPA_STOPPED = 10;
215dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    public static final int CDMA_OTA_PROVISION_STATUS_OTAPA_ABORTED = 11;
216dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
217dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
218767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
219767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Get the current ServiceState. Use
2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>registerForServiceStateChanged</code> to be informed of
2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * updates.
2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    ServiceState getServiceState();
2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get the current CellLocation.
2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    CellLocation getCellLocation();
229767a662ecde33c3979bf02b793d392aca0403162Wink Saville
2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get the current DataState. No change notification exists at this
232767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * interface -- use
233b111554883ef3d4101c2f3fe9d630f5c1d3bbf7aMarco Nelissen     * {@link com.android.telephony.PhoneStateListener PhoneStateListener}
234767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * instead.
2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    DataState getDataConnectionState();
2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get the current DataActivityState. No change notification exists at this
2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * interface -- use
2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link TelephonyManager} instead.
2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    DataActivityState getDataActivityState();
244767a662ecde33c3979bf02b793d392aca0403162Wink Saville
2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Gets the context for the phone, as set at initialization time.
2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Context getContext();
2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
250767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
251767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Disables the DNS check (i.e., allows "0.0.0.0").
252767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Useful for lab testing environment.
253767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param b true disables the check, false enables.
254767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
255767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void disableDnsCheck(boolean b);
256767a662ecde33c3979bf02b793d392aca0403162Wink Saville
257767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
258767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Returns true if the DNS check is currently disabled.
259767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
260767a662ecde33c3979bf02b793d392aca0403162Wink Saville    boolean isDnsCheckDisabled();
261767a662ecde33c3979bf02b793d392aca0403162Wink Saville
262767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get current coarse-grained voice call state.
2641c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * Use {@link #registerForPreciseCallStateChanged(Handler, int, Object)
2651c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * registerForPreciseCallStateChanged()} for change notification. <p>
2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If the phone has an active call and call waiting occurs,
2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * then the phone state is RINGING not OFFHOOK
268767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <strong>Note:</strong>
2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * This registration point provides notification of finer-grained
2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * changes.<p>
2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    State getState();
2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
275767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns a string identifier for this phone interface for parties
2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  outside the phone app process.
2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  @return The string name.
2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getPhoneName();
2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
282767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns an array of string identifiers for the APN types serviced by the
2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * currently active or last connected APN.
2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  @return The string array.
2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String[] getActiveApnTypes();
288767a662ecde33c3979bf02b793d392aca0403162Wink Saville
289767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns a string identifier for currently active or last connected APN.
2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  @return The string name.
2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getActiveApn();
294767a662ecde33c3979bf02b793d392aca0403162Wink Saville
295767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
296dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Get current signal strength. No change notification available on this
297dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * interface. Use <code>PhoneStateNotifier</code> or an equivalent.
298dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * An ASU is 0-31 or -1 if unknown (for GSM, dBm = -113 - 2 * asu).
299dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * The following special values are defined:</p>
300dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * <ul><li>0 means "-113 dBm or less".</li>
301dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * <li>31 means "-51 dBm or greater".</li></ul>
302767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
303e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * @return Current signal strength as SignalStrength
3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
305e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    SignalStrength getSignalStrength();
306767a662ecde33c3979bf02b793d392aca0403162Wink Saville
307767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Notifies when a previously untracked non-ringing/waiting connection has appeared.
3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * This is likely due to some other entity (eg, SIM card application) initiating a call.
3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForUnknownConnection(Handler h, int what, Object obj);
3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Unregisters for unknown connection notifications.
3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForUnknownConnection(Handler h);
3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
318767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
3191c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * Register for getting notifications for change in the Call State {@link Call.State}
3201c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * This is called PreciseCallState because the call state is more precise than the
3211c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link Phone.State} which can be obtained using the {@link PhoneStateListener}
3221c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     *
3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Resulting events will have an AsyncResult in <code>Message.obj</code>.
3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * AsyncResult.userData will be set to the obj argument here.
3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The <em>h</em> parameter is held only by a weak reference.
3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3271c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh    void registerForPreciseCallStateChanged(Handler h, int what, Object obj);
3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
330767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for voice call state change notifications.
3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently.
3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3331c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh    void unregisterForPreciseCallStateChanged(Handler h);
3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
336767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Notifies when a new ringing or waiting connection has appeared.<p>
3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Messages received from this:
3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Message.obj will be an AsyncResult
3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  AsyncResult.userObj = obj
3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  AsyncResult.result = a Connection. <p>
3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Please check Connection.isRinging() to make sure the Connection
3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  has not dropped since this message was posted.
345767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *  If Connection.isRinging() is true, then
3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *   Connection.getCall() == Phone.getRingingCall()
3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForNewRingingConnection(Handler h, int what, Object obj);
3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
351767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for new ringing connection notification.
3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForNewRingingConnection(Handler h);
3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
357767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Notifies when an incoming call rings.<p>
3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Messages received from this:
3619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Message.obj will be an AsyncResult
3629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  AsyncResult.userObj = obj
3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  AsyncResult.result = a Connection. <p>
3649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForIncomingRing(Handler h, int what, Object obj);
366767a662ecde33c3979bf02b793d392aca0403162Wink Saville
3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
368767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for ring notification.
3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
371767a662ecde33c3979bf02b793d392aca0403162Wink Saville
3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForIncomingRing(Handler h);
373767a662ecde33c3979bf02b793d392aca0403162Wink Saville
374767a662ecde33c3979bf02b793d392aca0403162Wink Saville
375767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Notifies when a voice connection has disconnected, either due to local
3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * or remote hangup or error.
378767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
3799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Messages received from this will have the following members:<p>
3809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  <ul><li>Message.obj will be an AsyncResult</li>
3819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  <li>AsyncResult.userObj = obj</li>
382767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *  <li>AsyncResult.result = a Connection object that is
3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  no longer connected.</li></ul>
3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForDisconnect(Handler h, int what, Object obj);
3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
388767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for voice disconnection notification.
3899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForDisconnect(Handler h);
3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Register for notifications of initiation of a new MMI code request.
3969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * MMI codes for GSM are discussed in 3GPP TS 22.030.<p>
3979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
3989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Example: If Phone.dial is called with "*#31#", then the app will
3999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * be notified here.<p>
4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
4019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The returned <code>Message.obj</code> will contain an AsyncResult.
4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
4039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>obj.result</code> will be an "MmiCode" object.
4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForMmiInitiate(Handler h, int what, Object obj);
4069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
408767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for new MMI initiate notification.
4099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
4109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForMmiInitiate(Handler h);
4129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Register for notifications that an MMI request has completed
4159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * its network activity and is in its final state. This may mean a state
4169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of COMPLETE, FAILED, or CANCELLED.
4179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
4189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>Message.obj</code> will contain an AsyncResult.
4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>obj.result</code> will be an "MmiCode" object
4209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForMmiComplete(Handler h, int what, Object obj);
4229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
424767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for MMI complete notification.
4259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
4269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForMmiComplete(Handler h);
4289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
4309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns a list of MMI codes that are pending. (They have initiated
4319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * but have not yet completed).
4329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Presently there is only ever one.
433767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Use <code>registerForMmiInitiate</code>
4349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * and <code>registerForMmiComplete</code> for change notification.
4359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public List<? extends MmiCode> getPendingMmiCodes();
4379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
4399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Sends user response to a USSD REQUEST message.  An MmiCode instance
4409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * representing this response is sent to handlers registered with
4419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * registerForMmiInitiate.
4429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
4439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param ussdMessge    Message to send in the response.
4449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void sendUssdResponse(String ussdMessge);
4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
448767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Register for ServiceState changed.
4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Message.obj will contain an AsyncResult.
4509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * AsyncResult.result will be a ServiceState instance
4519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForServiceStateChanged(Handler h, int what, Object obj);
4539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
455767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for ServiceStateChange notification.
4569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
4579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForServiceStateChanged(Handler h);
4599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
4619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Register for Supplementary Service notifications from the network.
4629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Message.obj will contain an AsyncResult.
4639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * AsyncResult.result will be a SuppServiceNotification instance.
4649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
4659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param h Handler that receives the notification message.
4669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param what User-defined message code.
4679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param obj User object.
4689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForSuppServiceNotification(Handler h, int what, Object obj);
4709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
472767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for Supplementary Service notifications.
4739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
474767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
4759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param h Handler to be removed from the registrant list.
4769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForSuppServiceNotification(Handler h);
4789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
4809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Register for notifications when a supplementary service attempt fails.
4819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Message.obj will contain an AsyncResult.
4829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
4839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param h Handler that receives the notification message.
4849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param what User-defined message code.
4859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param obj User object.
4869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForSuppServiceFailed(Handler h, int what, Object obj);
4889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
4909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Unregister for notifications when a supplementary service attempt fails.
4919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
492767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
4939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param h Handler to be removed from the registrant list.
4949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForSuppServiceFailed(Handler h);
4969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
497767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
498767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Register for notifications when a sInCall VoicePrivacy is enabled
499767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
500767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param h Handler that receives the notification message.
501767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param what User-defined message code.
502767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param obj User object.
503767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
504767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void registerForInCallVoicePrivacyOn(Handler h, int what, Object obj);
505767a662ecde33c3979bf02b793d392aca0403162Wink Saville
506767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
507767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unegister for notifications when a sInCall VoicePrivacy is enabled
508767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
509767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param h Handler to be removed from the registrant list.
510767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
511767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void unregisterForInCallVoicePrivacyOn(Handler h);
512767a662ecde33c3979bf02b793d392aca0403162Wink Saville
513767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
514767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Register for notifications when a sInCall VoicePrivacy is disabled
515767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
516767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param h Handler that receives the notification message.
517767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param what User-defined message code.
518767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param obj User object.
519767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
520767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void registerForInCallVoicePrivacyOff(Handler h, int what, Object obj);
521767a662ecde33c3979bf02b793d392aca0403162Wink Saville
522767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
523767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unegister for notifications when a sInCall VoicePrivacy is disabled
524767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
525767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param h Handler to be removed from the registrant list.
526767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
527767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void unregisterForInCallVoicePrivacyOff(Handler h);
528767a662ecde33c3979bf02b793d392aca0403162Wink Saville
529767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
530dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Register for notifications when CDMA OTA Provision status change
531e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     *
532e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * @param h Handler that receives the notification message.
533e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * @param what User-defined message code.
534e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * @param obj User object.
535e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
536dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void registerForCdmaOtaStatusChange(Handler h, int what, Object obj);
537e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
538e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
539dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Unegister for notifications when CDMA OTA Provision status change
540e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * @param h Handler to be removed from the registrant list.
541e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
542dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void unregisterForCdmaOtaStatusChange(Handler h);
543e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
544e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
545767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Returns SIM record load state. Use
5469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>getSimCard().registerForReady()</code> for change notification.
5479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
548767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @return true if records from the SIM have been loaded and are
5499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * available (if applicable). If not applicable to the underlying
5509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * technology, returns true as well.
5519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
552767a662ecde33c3979bf02b793d392aca0403162Wink Saville    boolean getIccRecordsLoaded();
5539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
555767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Returns the ICC card interface for this phone, or null
5569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * if not applicable to underlying technology.
5579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
558767a662ecde33c3979bf02b793d392aca0403162Wink Saville    IccCard getIccCard();
5599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
561767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Answers a ringing or waiting call. Active calls, if any, go on hold.
5629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Answering occurs asynchronously, and final notification occurs via
5631c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link #registerForPreciseCallStateChanged(android.os.Handler, int,
5641c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * java.lang.Object) registerForPreciseCallStateChanged()}.
5659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
5669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @exception CallStateException when no call is ringing or waiting
5679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
5689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void acceptCall() throws CallStateException;
5699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
570767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
571767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Reject (ignore) a ringing call. In GSM, this means UDUB
572767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * (User Determined User Busy). Reject occurs asynchronously,
573767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * and final notification occurs via
5741c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link #registerForPreciseCallStateChanged(android.os.Handler, int,
5751c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * java.lang.Object) registerForPreciseCallStateChanged()}.
5769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
5779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @exception CallStateException when no call is ringing or waiting
5789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
5799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void rejectCall() throws CallStateException;
5809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
581767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
5829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Places any active calls on hold, and makes any held calls
5839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  active. Switch occurs asynchronously and may fail.
584767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Final notification occurs via
5851c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link #registerForPreciseCallStateChanged(android.os.Handler, int,
5861c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * java.lang.Object) registerForPreciseCallStateChanged()}.
5879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
5889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @exception CallStateException if a call is ringing, waiting, or
5899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * dialing/alerting. In these cases, this operation may not be performed.
5909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
5919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void switchHoldingAndActive() throws CallStateException;
5929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
594767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Whether or not the phone can conference in the current phone
5959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * state--that is, one call holding and one call active.
596767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @return true if the phone can conference; false otherwise.
5979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
5989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean canConference();
5999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
601767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Conferences holding and active. Conference occurs asynchronously
602767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * and may fail. Final notification occurs via
6031c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link #registerForPreciseCallStateChanged(android.os.Handler, int,
6041c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * java.lang.Object) registerForPreciseCallStateChanged()}.
605767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
6069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @exception CallStateException if canConference() would return false.
6079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In these cases, this operation may not be performed.
6089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
6099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void conference() throws CallStateException;
6109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
612767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Enable or disable enhanced Voice Privacy (VP). If enhanced VP is
613767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * disabled, normal VP is enabled.
614767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
615767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param enable whether true or false to enable or disable.
616767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param onComplete a callback message when the action is completed.
617767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
618767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void enableEnhancedVoicePrivacy(boolean enable, Message onComplete);
619767a662ecde33c3979bf02b793d392aca0403162Wink Saville
620767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
621767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Get the currently set Voice Privacy (VP) mode.
622767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
623767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param onComplete a callback message when the action is completed.
624767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
625767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void getEnhancedVoicePrivacy(Message onComplete);
626767a662ecde33c3979bf02b793d392aca0403162Wink Saville
627767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
6289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Whether or not the phone can do explicit call transfer in the current
6299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * phone state--that is, one call holding and one call active.
6309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the phone can do explicit call transfer; false otherwise.
6319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
6329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean canTransfer();
6339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
6359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Connects the two calls and disconnects the subscriber from both calls
6369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Explicit Call Transfer occurs asynchronously
6379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * and may fail. Final notification occurs via
6381c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link #registerForPreciseCallStateChanged(android.os.Handler, int,
6391c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * java.lang.Object) registerForPreciseCallStateChanged()}.
6409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
6419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @exception CallStateException if canTransfer() would return false.
6429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In these cases, this operation may not be performed.
6439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
6449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void explicitCallTransfer() throws CallStateException;
6459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
6479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Clears all DISCONNECTED connections from Call connection lists.
6489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Calls that were in the DISCONNECTED state become idle. This occurs
6499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * synchronously.
6509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
6519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void clearDisconnected();
6529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
654767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
655767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Gets the foreground call object, which represents all connections that
656767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * are dialing or active (all connections
6579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * that have their audio path connected).<p>
6589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
6599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The foreground call is a singleton object. It is constant for the life
6609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of this phone. It is never null.<p>
661767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
6629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The foreground call will only ever be in one of these states:
663767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * IDLE, ACTIVE, DIALING, ALERTING, or DISCONNECTED.
6649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
6659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * State change notification is available via
6661c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link #registerForPreciseCallStateChanged(android.os.Handler, int,
6671c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * java.lang.Object) registerForPreciseCallStateChanged()}.
6689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
6699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Call getForegroundCall();
6709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
671767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
6729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Gets the background call object, which represents all connections that
6739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * are holding (all connections that have been accepted or connected, but
6749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * do not have their audio path connected). <p>
6759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
6769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The background call is a singleton object. It is constant for the life
6779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of this phone object . It is never null.<p>
678767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
6799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The background call will only ever be in one of these states:
6809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * IDLE, HOLDING or DISCONNECTED.
6819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
6829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * State change notification is available via
6831c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link #registerForPreciseCallStateChanged(android.os.Handler, int,
6841c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * java.lang.Object) registerForPreciseCallStateChanged()}.
6859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
6869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Call getBackgroundCall();
6879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
688767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
689767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Gets the ringing call object, which represents an incoming
6909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * connection (if present) that is pending answer/accept. (This connection
6919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * may be RINGING or WAITING, and there may be only one.)<p>
6929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The ringing call is a singleton object. It is constant for the life
6949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of this phone. It is never null.<p>
695767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
6969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The ringing call will only ever be in one of these states:
6979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * IDLE, INCOMING, WAITING or DISCONNECTED.
6989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
6999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * State change notification is available via
7001c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link #registerForPreciseCallStateChanged(android.os.Handler, int,
7011c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * java.lang.Object) registerForPreciseCallStateChanged()}.
7029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Call getRingingCall();
7049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
705767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
7069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Initiate a new voice connection. This happens asynchronously, so you
7079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * cannot assume the audio path is connected (or a call index has been
7089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * assigned) until PhoneStateChanged notification has occurred.
7099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
7109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @exception CallStateException if a new outgoing call is not currently
711767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * possible because no more call slots exist or a call exists that is
712767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * dialing, alerting, ringing, or waiting.  Other errors are
7139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * handled asynchronously.
7149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Connection dial(String dialString) throws CallStateException;
7169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
7189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Handles PIN MMI commands (PIN/PIN2/PUK/PUK2), which are initiated
7199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * without SEND (so <code>dial</code> is not appropriate).
720767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
7219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param dialString the MMI command to be executed.
7229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if MMI command is executed.
7239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean handlePinMmi(String dialString);
7259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
7279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Handles in-call MMI commands. While in a call, or while receiving a
7289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * call, use this to execute MMI commands.
7299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * see 3GPP 20.030, section 6.5.5.1 for specs on the allowed MMI commands.
7309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
7319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param command the MMI command to be executed.
7329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the MMI command is executed.
7339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @throws CallStateException
7349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean handleInCallMmiCommands(String command) throws CallStateException;
7369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
738767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Play a DTMF tone on the active call. Ignored if there is no active call.
7399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param c should be one of 0-9, '*' or '#'. Other values will be
7409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * silently ignored.
7419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void sendDtmf(char c);
7439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
7459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Start to paly a DTMF tone on the active call. Ignored if there is no active call
7469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * or there is a playing DTMF tone.
7479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param c should be one of 0-9, '*' or '#'. Other values will be
7489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * silently ignored.
7499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void startDtmf(char c);
7519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
7539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Stop the playing DTMF tone. Ignored if there is no playing DTMF
7549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * tone or no active call.
7559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void stopDtmf();
7579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
758e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
759dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * send burst DTMF tone, it can send the string as single character or multiple character
760dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * ignore if there is no active call or not valid digits string.
761dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Valid digit means only includes characters ISO-LATIN characters 0-9, *, #
762dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * The difference between sendDtmf and sendBurstDtmf is sendDtmf only sends one character,
763dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * this api can send single character and multiple character, also, this api has response
764dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * back to caller.
765dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *
766dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param dtmfString is string representing the dialing digit(s) in the active call
767dafa22a3ef9328c72319aeec605f6a6d20e46080jsh     * @param on the DTMF ON length in milliseconds, or 0 for default
768dafa22a3ef9328c72319aeec605f6a6d20e46080jsh     * @param off the DTMF OFF length in milliseconds, or 0 for default
769dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param onCompelte is the callback message when the action is processed by BP
770dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *
771e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
772dafa22a3ef9328c72319aeec605f6a6d20e46080jsh    void sendBurstDtmf(String dtmfString, int on, int off, Message onComplete);
7739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
775767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Sets the radio power on/off state (off is sometimes
776767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * called "airplane mode"). Current state can be gotten via
777767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * {@link #getServiceState()}.{@link
7789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * android.telephony.ServiceState#getState() getState()}.
779767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <strong>Note: </strong>This request is asynchronous.
7809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * getServiceState().getState() will not change immediately after this call.
781767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * registerForServiceStateChanged() to find out when the
7829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * request is complete.
7839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
784767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param power true means "on", false means "off".
7859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setRadioPower(boolean power);
7879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
788767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
7899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get voice message waiting indicator status. No change notification
7909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * available on this interface. Use PhoneStateNotifier or similar instead.
7919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
7929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if there is a voice message waiting
7939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean getMessageWaitingIndicator();
7959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
7979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get voice call forwarding indicator status. No change notification
7989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * available on this interface. Use PhoneStateNotifier or similar instead.
7999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
8009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if there is a voice call forwarding
8019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean getCallForwardingIndicator();
8039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get the line 1 phone number (MSISDN).<p>
8069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
8079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return phone number. May return null if not
8089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * available or the SIM is not ready
8099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getLine1Number();
8119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the alpha tag associated with the msisdn number.
8149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If there is no alpha tag associated or the record is not yet available,
8159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * returns a default localized string. <p>
8169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getLine1AlphaTag();
8189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Sets the MSISDN phone number in the SIM card.
8219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
8229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param alphaTag the alpha tag associated with the MSISDN phone number
8239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *        (see getMsisdnAlphaTag)
8249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param number the new MSISDN phone number to be set on the SIM.
8259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
8269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setLine1Number(String alphaTag, String number, Message onComplete);
8289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
830767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Get the voice mail access phone number. Typically dialed when the
831767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * user holds the "1" key in the phone app. May return null if not
8329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * available or the SIM is not ready.<p>
8339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getVoiceMailNumber();
8359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
837dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Returns unread voicemail count. This count is shown when the  voicemail
838dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * notification is expanded.<p>
839dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
840ce099c3226b33b43e0dd5d1f24347b14a2223ee1David Krause    int getVoiceMessageCount();
841dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
842dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
8439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the alpha tag associated with the voice mail number.
8449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If there is no alpha tag associated or the record is not yet available,
8459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * returns a default localized string. <p>
846767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
847767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Please use this value instead of some other localized string when
8489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * showing a name for this number in the UI. For example, call log
8499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * entries should show this alpha tag. <p>
8509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
8519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Usage of this alpha tag in the UI is a common carrier requirement.
8529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getVoiceMailAlphaTag();
8549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * setVoiceMailNumber
8579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * sets the voicemail number in the SIM card.
8589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
8599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param alphaTag the alpha tag associated with the voice mail number
8609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *        (see getVoiceMailAlphaTag)
8619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param voiceMailNumber the new voicemail number to be set on the SIM.
8629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
8639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setVoiceMailNumber(String alphaTag,
8659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            String voiceMailNumber,
8669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            Message onComplete);
8679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * getCallForwardingOptions
870767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * gets a call forwarding option. The return value of
871767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * ((AsyncResult)onComplete.obj) is an array of CallForwardInfo.
872767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
873767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param commandInterfaceCFReason is one of the valid call forwarding
874767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        CF_REASONS, as defined in
875dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *        <code>com.android.internal.telephony.CommandsInterface.</code>
8769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
877767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        @see com.android.internal.telephony.CallForwardInfo for details.
8789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void getCallForwardingOption(int commandInterfaceCFReason,
8809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                  Message onComplete);
881767a662ecde33c3979bf02b793d392aca0403162Wink Saville
8829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * setCallForwardingOptions
8849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * sets a call forwarding option.
885767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
886767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param commandInterfaceCFReason is one of the valid call forwarding
887767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        CF_REASONS, as defined in
888dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *        <code>com.android.internal.telephony.CommandsInterface.</code>
889767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param commandInterfaceCFAction is one of the valid call forwarding
890767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        CF_ACTIONS, as defined in
891dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *        <code>com.android.internal.telephony.CommandsInterface.</code>
892767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param dialingNumber is the target phone number to forward calls to
8939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param timerSeconds is used by CFNRy to indicate the timeout before
8949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *        forwarding is attempted.
8959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
8969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setCallForwardingOption(int commandInterfaceCFReason,
8989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                 int commandInterfaceCFAction,
8999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                 String dialingNumber,
9009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                 int timerSeconds,
9019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                 Message onComplete);
902767a662ecde33c3979bf02b793d392aca0403162Wink Saville
9039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
9049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * getOutgoingCallerIdDisplay
905767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * gets outgoing caller id display. The return value of
9069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * ((AsyncResult)onComplete.obj) is an array of int, with a length of 2.
907767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
9089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
909767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        @see com.android.internal.telephony.CommandsInterface.getCLIR for details.
9109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
9119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void getOutgoingCallerIdDisplay(Message onComplete);
912767a662ecde33c3979bf02b793d392aca0403162Wink Saville
9139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
9149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * setOutgoingCallerIdDisplay
915767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * sets a call forwarding option.
916767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
917767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param commandInterfaceCLIRMode is one of the valid call CLIR
918767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        modes, as defined in
919767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        <code>com.android.internal.telephony.CommandsInterface./code>
9209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
9219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
9229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setOutgoingCallerIdDisplay(int commandInterfaceCLIRMode,
9239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                    Message onComplete);
924767a662ecde33c3979bf02b793d392aca0403162Wink Saville
9259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
9269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * getCallWaiting
927767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * gets call waiting activation state. The return value of
9289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * ((AsyncResult)onComplete.obj) is an array of int, with a length of 1.
929767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
9309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
931767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        @see com.android.internal.telephony.CommandsInterface.queryCallWaiting for details.
9329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
9339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void getCallWaiting(Message onComplete);
934767a662ecde33c3979bf02b793d392aca0403162Wink Saville
9359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
9369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * setCallWaiting
937767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * sets a call forwarding option.
938767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
939767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param enable is a boolean representing the state that you are
9409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *        requesting, true for enabled, false for disabled.
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 setCallWaiting(boolean enable, Message onComplete);
944767a662ecde33c3979bf02b793d392aca0403162Wink Saville
9459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
9469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Scan available networks. This method is asynchronous; .
9479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * On completion, <code>response.obj</code> is set to an AsyncResult with
9489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * one of the following members:.<p>
9499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *<ul>
950767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <li><code>response.obj.result</code> will be a <code>List</code> of
951767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <code>com.android.internal.telephony.gsm.NetworkInfo</code> objects, or</li>
952767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <li><code>response.obj.exception</code> will be set with an exception
9539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * on failure.</li>
9549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * </ul>
9559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
956767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void getAvailableNetworks(Message response);
9579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
9599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Switches network selection mode to "automatic", re-scanning and
9609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * re-selecting a network if appropriate.
961767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
962767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response The message to dispatch when the network selection
9639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * is complete.
964767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
965767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @see #selectNetworkManually(com.android.internal.telephony.gsm.NetworkInfo,
9669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * android.os.Message )
9679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
9689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setNetworkSelectionModeAutomatic(Message response);
9699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
971767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Manually selects a network. <code>response</code> is
9729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * dispatched when this is complete.  <code>response.obj</code> will be
9739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * an AsyncResult, and <code>response.obj.exception</code> will be non-null
9749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * on failure.
975767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
9769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see #setNetworkSelectionModeAutomatic(Message)
9779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
978767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void selectNetworkManually(NetworkInfo network,
9799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            Message response);
9809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
9829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Requests to set the preferred network type for searching and registering
9839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (CS/PS domain, RAT, and operation mode)
9849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param networkType one of  NT_*_TYPE
9859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param response is callback message
9869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
9879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setPreferredNetworkType(int networkType, Message response);
9889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
9909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Query the preferred network type setting
9919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
9929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param response is callback message to report one of  NT_*_TYPE
9939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
9949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void getPreferredNetworkType(Message response);
9959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
997c06ce125408696fd49c7fa9e1189ecb61804007ajsh     * Gets the default SMSC address.
998c06ce125408696fd49c7fa9e1189ecb61804007ajsh     *
999c06ce125408696fd49c7fa9e1189ecb61804007ajsh     * @param result Callback message contains the SMSC address.
1000c06ce125408696fd49c7fa9e1189ecb61804007ajsh     */
1001c06ce125408696fd49c7fa9e1189ecb61804007ajsh    void getSmscAddress(Message result);
1002c06ce125408696fd49c7fa9e1189ecb61804007ajsh
1003c06ce125408696fd49c7fa9e1189ecb61804007ajsh    /**
1004c06ce125408696fd49c7fa9e1189ecb61804007ajsh     * Sets the default SMSC address.
1005c06ce125408696fd49c7fa9e1189ecb61804007ajsh     *
1006c06ce125408696fd49c7fa9e1189ecb61804007ajsh     * @param address new SMSC address
1007c06ce125408696fd49c7fa9e1189ecb61804007ajsh     * @param result Callback message is empty on completion
1008c06ce125408696fd49c7fa9e1189ecb61804007ajsh     */
1009c06ce125408696fd49c7fa9e1189ecb61804007ajsh    void setSmscAddress(String address, Message result);
1010c06ce125408696fd49c7fa9e1189ecb61804007ajsh
1011c06ce125408696fd49c7fa9e1189ecb61804007ajsh    /**
10129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Query neighboring cell IDs.  <code>response</code> is dispatched when
10139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * this is complete.  <code>response.obj</code> will be an AsyncResult,
10149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * and <code>response.obj.exception</code> will be non-null on failure.
10159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * On success, <code>AsyncResult.result</code> will be a <code>String[]</code>
10169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * containing the neighboring cell IDs.  Index 0 will contain the count
10179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of available cell IDs.  Cell IDs are in hexadecimal format.
10189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
10199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param response callback message that is dispatched when the query
1020767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * completes.
10219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
10229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void getNeighboringCids(Message response);
10239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
10259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Sets an event to be fired when the telephony system processes
10269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * a post-dial character on an outgoing call.<p>
10279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
10289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Messages of type <code>what</code> will be sent to <code>h</code>.
10299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The <code>obj</code> field of these Message's will be instances of
10309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>AsyncResult</code>. <code>Message.obj.result</code> will be
10319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * a Connection object.<p>
10329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1033767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Message.arg1 will be the post dial character being processed,
10349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * or 0 ('\0') if end of string.<p>
10359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1036767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * If Connection.getPostDialState() == WAIT,
1037767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * the application must call
1038767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * {@link com.android.internal.telephony.Connection#proceedAfterWaitChar()
1039767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Connection.proceedAfterWaitChar()} or
1040767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * {@link com.android.internal.telephony.Connection#cancelPostDial()
10419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Connection.cancelPostDial()}
1042767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * for the telephony system to continue playing the post-dial
10439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * DTMF sequence.<p>
10449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1045767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * If Connection.getPostDialState() == WILD,
1046767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * the application must call
10479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link com.android.internal.telephony.Connection#proceedAfterWildChar
10489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Connection.proceedAfterWildChar()}
1049767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * or
1050767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * {@link com.android.internal.telephony.Connection#cancelPostDial()
10519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Connection.cancelPostDial()}
1052767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * for the telephony system to continue playing the
10539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * post-dial DTMF sequence.<p>
1054767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
10559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Only one post dial character handler may be set. <p>
10569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Calling this method with "h" equal to null unsets this handler.<p>
10579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
10589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setOnPostDialCharacter(Handler h, int what, Object obj);
10599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1062767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Mutes or unmutes the microphone for the active call. The microphone
1063767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * is automatically unmuted if a call is answered, dialed, or resumed
10649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * from a holding state.
1065767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1066767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param muted true to mute the microphone,
10679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * false to activate the microphone.
10689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
10699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setMute(boolean muted);
10719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1073767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Gets current mute status. Use
10741c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * {@link #registerForPreciseCallStateChanged(android.os.Handler, int,
10751c42769339d8fe98ecb2698c64e7dc6672e3d59dJaikumar Ganesh     * java.lang.Object) registerForPreciseCallStateChanged()}
10769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * as a change notifcation, although presently phone state changed is not
10779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * fired when setMute() is called.
10789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
10799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true is muting, false is unmuting
10809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
10819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean getMute();
10829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
10849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Invokes RIL_REQUEST_OEM_HOOK_RAW on RIL implementation.
1085767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
10869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param data The data for the request.
1087767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response <strong>On success</strong>,
10889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (byte[])(((AsyncResult)response.obj).result)
1089767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <strong>On failure</strong>,
1090767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * (((AsyncResult)response.obj).result) == null and
10919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (((AsyncResult)response.obj).exception) being an instance of
10929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * com.android.internal.telephony.gsm.CommandException
10939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
10949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see #invokeOemRilRequestRaw(byte[], android.os.Message)
10959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
10969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void invokeOemRilRequestRaw(byte[] data, Message response);
10979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
10999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Invokes RIL_REQUEST_OEM_HOOK_Strings on RIL implementation.
1100767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
11019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param strings The strings to make available as the request data.
1102767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response <strong>On success</strong>, "response" bytes is
11039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * made available as:
11049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (String[])(((AsyncResult)response.obj).result).
1105767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <strong>On failure</strong>,
1106767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * (((AsyncResult)response.obj).result) == null and
11079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (((AsyncResult)response.obj).exception) being an instance of
11089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * com.android.internal.telephony.gsm.CommandException
11099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
11109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see #invokeOemRilRequestStrings(java.lang.String[], android.os.Message)
11119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void invokeOemRilRequestStrings(String[] strings, Message response);
11139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
11159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get the current active PDP context list
11169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1117767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @deprecated
11189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param response <strong>On success</strong>, "response" bytes is
11199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * made available as:
11209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (String[])(((AsyncResult)response.obj).result).
11219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <strong>On failure</strong>,
11229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (((AsyncResult)response.obj).result) == null and
11239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (((AsyncResult)response.obj).exception) being an instance of
11249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * com.android.internal.telephony.gsm.CommandException
11259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void getPdpContextList(Message response);
11279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1129767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Get the current active Data Call list, substitutes getPdpContextList
1130767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1131767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response <strong>On success</strong>, "response" bytes is
1132767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * made available as:
1133767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * (String[])(((AsyncResult)response.obj).result).
1134767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <strong>On failure</strong>,
1135767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * (((AsyncResult)response.obj).result) == null and
1136767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * (((AsyncResult)response.obj).exception) being an instance of
1137767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * com.android.internal.telephony.gsm.CommandException
1138767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1139767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void getDataCallList(Message response);
1140767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1141767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
11429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get current mutiple PDP link status
1143767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1144767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @deprecated
11459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return list of pdp link connections
11469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    List<PdpConnection> getCurrentPdpList ();
11489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1150767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Get current mutiple data connection status
1151767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1152767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @return list of data connections
1153767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1154767a662ecde33c3979bf02b793d392aca0403162Wink Saville    List<DataConnection> getCurrentDataConnectionList ();
1155767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1156767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
11579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Udpate LAC and CID in service state for currnet GSM netowrk registration
11589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
11599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If get different LAC and/or CID, notifyServiceState will be sent
11609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
11619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param
11629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <strong>On failure</strong>,
11639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (((AsyncResult)response.obj).result) == null and
11649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (((AsyncResult)response.obj).exception) being an instance of
11659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * com.android.internal.telephony.gsm.CommandException
11669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void updateServiceLocation(Message response);
11689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
11709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Enable location update notifications.
11719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void enableLocationUpdates();
11739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
11759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Disable location update notifications.
11769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void disableLocationUpdates();
11789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1180767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * For unit tests; don't send notifications to "Phone"
11819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * mailbox registrants if true.
11829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setUnitTestMode(boolean f);
1184767a662ecde33c3979bf02b793d392aca0403162Wink Saville
11859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
11869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true If unit test mode is enabled
11879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean getUnitTestMode();
11899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
11919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Assign a specified band for RF configuration.
11929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
11939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param bandMode one of BM_*_BAND
11949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param response is callback message
11959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setBandMode(int bandMode, Message response);
11979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
11999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Query the list of band mode supported by RF.
12009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
12019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param response is callback message
12029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *        ((AsyncResult)response.obj).result  is an int[] with every
12039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *        element representing one avialable BM_*_BAND
12049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void queryAvailableBandMode(Message response);
12069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if enable data connection on roaming
12099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean getDataRoamingEnabled();
12119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param enable set true if enable data connection on roaming
12149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setDataRoamingEnabled(boolean enable);
12169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1218767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *  Query the CDMA roaming preference setting
1219767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1220767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response is callback message to report one of  CDMA_RM_*
1221767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1222767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void queryCdmaRoamingPreference(Message response);
1223767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1224767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1225767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *  Requests to set the CDMA roaming preference
1226767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param cdmaRoamingType one of  CDMA_RM_*
1227767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response is callback message
1228767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1229767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void setCdmaRoamingPreference(int cdmaRoamingType, Message response);
1230767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1231767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1232767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *  Requests to set the CDMA subscription mode
1233767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param cdmaSubscriptionType one of  CDMA_SUBSCRIPTION_*
1234767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response is callback message
1235767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1236767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void setCdmaSubscription(int cdmaSubscriptionType, Message response);
1237767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1238767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
12399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If this is a simulated phone interface, returns a SimulatedRadioControl.
1240767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @ return A SimulatedRadioControl if this is a simulated interface;
12419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * otherwise, null.
12429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    SimulatedRadioControl getSimulatedRadioControl();
12449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Allow mobile data connections.
12479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return {@code true} if the operation started successfully
12489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <br/>{@code false} if it
12499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * failed immediately.<br/>
12509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Even in the {@code true} case, it may still fail later
12519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * during setup, in which case an asynchronous indication will
12529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * be supplied.
12539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean enableDataConnectivity();
12559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Disallow mobile data connections, and terminate any that
12589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * are in progress.
12599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return {@code true} if the operation started successfully
12609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <br/>{@code false} if it
12619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * failed immediately.<br/>
12629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Even in the {@code true} case, it may still fail later
12639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * during setup, in which case an asynchronous indication will
12649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * be supplied.
12659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean disableDataConnectivity();
12679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Enables the specified APN type. Only works for "special" APN types,
12709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * i.e., not the default APN.
12719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param type The desired APN type. Cannot be {@link #APN_TYPE_DEFAULT}.
12729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return <code>APN_ALREADY_ACTIVE</code> if the current APN
12739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * services the requested type.<br/>
12749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>APN_TYPE_NOT_AVAILABLE</code> if the carrier does not
12759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * support the requested APN.<br/>
12769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>APN_REQUEST_STARTED</code> if the request has been initiated.<br/>
12779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>APN_REQUEST_FAILED</code> if the request was invalid.<br/>
12789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * A <code>ACTION_ANY_DATA_CONNECTION_STATE_CHANGED</code> broadcast will
12799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * indicate connection state progress.
12809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int enableApnType(String type);
12829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Disables the specified APN type, and switches back to the default APN,
12859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * if necessary. Switching to the default APN will not happen if default
12869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * data traffic has been explicitly disabled via a call to {@link #disableDataConnectivity}.
12879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p/>Only works for "special" APN types,
12889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * i.e., not the default APN.
12899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param type The desired APN type. Cannot be {@link #APN_TYPE_DEFAULT}.
12909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return <code>APN_ALREADY_ACTIVE</code> if the default APN
12919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * is already active.<br/>
12929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>APN_REQUEST_STARTED</code> if the request to switch to the default
12939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * APN has been initiated.<br/>
12949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>APN_REQUEST_FAILED</code> if the request was invalid.<br/>
12959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * A <code>ACTION_ANY_DATA_CONNECTION_STATE_CHANGED</code> broadcast will
12969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * indicate connection state progress.
12979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int disableApnType(String type);
12999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
13019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Report on whether data connectivity is allowed.
13029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isDataConnectivityPossible();
13049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
13069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the name of the network interface used by the specified APN type.
13079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getInterfaceName(String apnType);
13099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
13119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the IP address of the network interface used by the specified
13129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * APN type.
13139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getIpAddress(String apnType);
13159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
13179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the gateway for the network interface used by the specified APN
13189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * type.
13199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getGateway(String apnType);
13219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
13239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the DNS servers for the network interface used by the specified
13249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * APN type.
13259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String[] getDnsServers(String apnType);
13279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1329767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Retrieves the unique device ID, e.g., IMEI for GSM phones and MEID for CDMA phones.
13309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getDeviceId();
13329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
13349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Retrieves the software version number for the device, e.g., IMEI/SV
13359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * for GSM phones.
13369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getDeviceSvn();
13389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
13409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Retrieves the unique sbuscriber ID, e.g., IMSI for GSM phones.
13419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
13429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getSubscriberId();
13439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1345767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Retrieves the serial number of the ICC, if applicable.
1346767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1347767a662ecde33c3979bf02b793d392aca0403162Wink Saville    String getIccSerialNumber();
1348767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1349767a662ecde33c3979bf02b793d392aca0403162Wink Saville    //***** CDMA support methods
1350767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1351dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /*
1352dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * TODO(Moto) TODO(Teleca): can getCdmaMin, getEsn, getMeid use more generic calls
1353dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * already defined getXxxx above?
1354dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1355dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1356e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
1357e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Retrieves the MIN for CDMA phones.
1358e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
1359dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    String getCdmaMin();
1360767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1361767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
136222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *  Retrieves PRL Version for CDMA phones
136322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
136422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    String getCdmaPrlVersion();
136522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
136622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
1367767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Retrieves the ESN for CDMA phones.
13689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1369767a662ecde33c3979bf02b793d392aca0403162Wink Saville    String getEsn();
1370767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1371767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1372767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Retrieves MEID for CDMA phones.
1373767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1374767a662ecde33c3979bf02b793d392aca0403162Wink Saville    String getMeid();
1375767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1376767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1377767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Retrieves the PhoneSubInfo of the Phone
1378767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1379767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public PhoneSubInfo getPhoneSubInfo();
1380767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1381767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1382767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Retrieves the IccSmsInterfaceManager of the Phone
1383767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1384767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public IccSmsInterfaceManager getIccSmsInterfaceManager();
1385767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1386767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1387767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Retrieves the IccPhoneBookInterfaceManager of the Phone
1388767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1389767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public IccPhoneBookInterfaceManager getIccPhoneBookInterfaceManager();
1390767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1391767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1392e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * setTTYMode
1393767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * sets a TTY mode option.
1394767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1395767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param enable is a boolean representing the state that you are
1396767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        requesting, true for enabled, false for disabled.
1397767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param onComplete a callback message when the action is completed
1398767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1399e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    void setTTYMode(int ttyMode, Message onComplete);
1400767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1401767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1402e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * queryTTYMode
1403767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * query the status of the TTY mode
1404767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1405767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param onComplete a callback message when the action is completed.
1406767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1407e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    void queryTTYMode(Message onComplete);
1408e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
1409e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
1410767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Activate or deactivate cell broadcast SMS.
1411767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1412767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param activate
1413767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *            0 = activate, 1 = deactivate
1414767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response
1415767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *            Callback message is empty on completion
1416767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1417767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void activateCellBroadcastSms(int activate, Message response);
1418767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1419767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1420767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Query the current configuration of cdma cell broadcast SMS.
1421767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1422767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response
1423767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *            Callback message is empty on completion
1424767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1425767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void getCellBroadcastSmsConfig(Message response);
1426767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1427767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1428767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Configure cell broadcast SMS.
1429767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1430e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * TODO: Change the configValuesArray to a RIL_BroadcastSMSConfig
1431e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     *
1432767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response
1433767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *            Callback message is empty on completion
1434767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1435767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void setCellBroadcastSmsConfig(int[] configValuesArray, Message response);
1436767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1437767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void notifyDataActivity();
1438e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
1439e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
1440e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Returns the CDMA ERI icon index to display
1441e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
1442e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    public int getCdmaEriIconIndex();
1443e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
1444e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
1445e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Returns the CDMA ERI icon mode,
1446e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * 0 - ON
1447e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * 1 - FLASHING
1448e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
1449e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    public int getCdmaEriIconMode();
1450e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
1451e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
1452e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Returns the CDMA ERI text,
1453e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
1454e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    public String getCdmaEriText();
1455e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
1456dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1457dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * request to exit emergency call back mode
1458dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * the caller should use setOnECMModeExitResponse
1459dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * to receive the emergency callback mode exit response
1460dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1461dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void exitEmergencyCallbackMode();
1462dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1463dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1464dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * this decides if the dial number is OTA(Over the air provision) number or not
1465dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param dialStr is string representing the dialing digit(s)
1466dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @return  true means the dialStr is OTA number, and false means the dialStr is not OTA number
1467dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1468dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    boolean isOtaSpNumber(String dialStr);
1469dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1470dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1471dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Register for notifications when CDMA call waiting comes
1472dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *
1473dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param h Handler that receives the notification message.
1474dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param what User-defined message code.
1475dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param obj User object.
1476dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1477dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void registerForCallWaiting(Handler h, int what, Object obj);
1478dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1479dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1480dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Unegister for notifications when CDMA Call waiting comes
1481dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param h Handler to be removed from the registrant list.
1482dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1483dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void unregisterForCallWaiting(Handler h);
1484dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1485dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1486dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1487dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Register for signal information notifications from the network.
1488dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Message.obj will contain an AsyncResult.
1489dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * AsyncResult.result will be a SuppServiceNotification instance.
1490dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *
1491dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param h Handler that receives the notification message.
1492dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param what User-defined message code.
1493dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param obj User object.
1494dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1495dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1496dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void registerForSignalInfo(Handler h, int what, Object obj) ;
1497dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1498dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Unregisters for signal information notifications.
1499dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Extraneous calls are tolerated silently
1500dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *
1501dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param h Handler to be removed from the registrant list.
1502dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1503dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void unregisterForSignalInfo(Handler h);
1504dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1505dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1506dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Register for display information notifications from the network.
1507dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Message.obj will contain an AsyncResult.
1508dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * AsyncResult.result will be a SuppServiceNotification instance.
1509dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *
1510dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param h Handler that receives the notification message.
1511dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param what User-defined message code.
1512dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param obj User object.
1513dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1514dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void registerForDisplayInfo(Handler h, int what, Object obj);
1515dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1516dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1517dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Unregisters for display information notifications.
1518dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Extraneous calls are tolerated silently
1519dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *
1520dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param h Handler to be removed from the registrant list.
1521dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1522dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void unregisterForDisplayInfo(Handler h) ;
1523dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
152422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
152522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Register for CDMA number information record notification from the network.
152622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Message.obj will contain an AsyncResult.
152722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * AsyncResult.result will be a CdmaInformationRecords.CdmaNumberInfoRec
152822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * instance.
152922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
153022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler that receives the notification message.
153122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param what User-defined message code.
153222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param obj User object.
153322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
153422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void registerForNumberInfo(Handler h, int what, Object obj);
153522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
153622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
153722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Unregisters for number information record notifications.
153822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Extraneous calls are tolerated silently
153922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
154022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler to be removed from the registrant list.
154122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
154222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void unregisterForNumberInfo(Handler h);
154322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
154422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
154522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Register for CDMA redirected number information record notification
154622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * from the network.
154722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Message.obj will contain an AsyncResult.
154822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * AsyncResult.result will be a CdmaInformationRecords.CdmaRedirectingNumberInfoRec
154922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * instance.
155022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
155122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler that receives the notification message.
155222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param what User-defined message code.
155322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param obj User object.
155422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
155522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void registerForRedirectedNumberInfo(Handler h, int what, Object obj);
155622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
155722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
155822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Unregisters for redirected number information record notification.
155922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Extraneous calls are tolerated silently
156022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
156122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler to be removed from the registrant list.
156222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
156322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void unregisterForRedirectedNumberInfo(Handler h);
156422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
156522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
156622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Register for CDMA line control information record notification
156722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * from the network.
156822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Message.obj will contain an AsyncResult.
156922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * AsyncResult.result will be a CdmaInformationRecords.CdmaLineControlInfoRec
157022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * instance.
157122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
157222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler that receives the notification message.
157322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param what User-defined message code.
157422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param obj User object.
157522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
157622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void registerForLineControlInfo(Handler h, int what, Object obj);
157722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
157822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
157922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Unregisters for line control information notifications.
158022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Extraneous calls are tolerated silently
158122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
158222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler to be removed from the registrant list.
158322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
158422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void unregisterForLineControlInfo(Handler h);
158522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
158622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
158722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Register for CDMA T53 CLIR information record notifications
158822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * from the network.
158922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Message.obj will contain an AsyncResult.
159022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * AsyncResult.result will be a CdmaInformationRecords.CdmaT53ClirInfoRec
159122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * instance.
159222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
159322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler that receives the notification message.
159422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param what User-defined message code.
159522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param obj User object.
159622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
159722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void registerFoT53ClirlInfo(Handler h, int what, Object obj);
159822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
159922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
160022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Unregisters for T53 CLIR information record notification
160122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Extraneous calls are tolerated silently
160222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
160322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler to be removed from the registrant list.
160422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
160522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void unregisterForT53ClirInfo(Handler h);
160622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
160722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
160822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Register for CDMA T53 audio control information record notifications
160922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * from the network.
161022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Message.obj will contain an AsyncResult.
161122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * AsyncResult.result will be a CdmaInformationRecords.CdmaT53AudioControlInfoRec
161222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * instance.
161322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
161422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler that receives the notification message.
161522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param what User-defined message code.
161622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param obj User object.
161722ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
161822ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void registerForT53AudioControlInfo(Handler h, int what, Object obj);
161922ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville
162022ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    /**
162122ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Unregisters for T53 audio control information record notifications.
162222ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * Extraneous calls are tolerated silently
162322ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     *
162422ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     * @param h Handler to be removed from the registrant list.
162522ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville     */
162622ccaf5321cf9d2df57cf0d686d1abcd74acb193Wink Saville    void unregisterForT53AudioControlInfo(Handler h);
1627dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1628dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1629dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * registers for exit emergency call back mode request response
1630dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *
1631dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param h Handler that receives the notification message.
1632dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param what User-defined message code.
1633dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param obj User object.
1634dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1635dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1636dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void setOnEcbModeExitResponse(Handler h, int what, Object obj);
1637dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1638dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
1639dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * Unregisters for exit emergency call back mode request response
1640dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     *
1641dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     * @param h Handler to be removed from the registrant list.
1642dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville     */
1643dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    void unsetOnEcbModeExitResponse(Handler h);
1644dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
1645dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
16469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
1647