Phone.java revision 42ad56ead40f6c5986bd2d298b1d36f42da489a1
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;
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.telephony.ServiceState;
26767a662ecde33c3979bf02b793d392aca0403162Wink Saville
27767a662ecde33c3979bf02b793d392aca0403162Wink Savilleimport com.android.internal.telephony.DataConnection;
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport com.android.internal.telephony.gsm.NetworkInfo;
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport com.android.internal.telephony.gsm.PdpConnection;
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport com.android.internal.telephony.test.SimulatedRadioControl;
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.List;
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Internal interface used to control the phone; SDK developers cannot
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * obtain this interface.
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@hide}
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic interface Phone {
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /** used to enable additional debug messages */
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final boolean DEBUG_PHONE = true;
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
46767a662ecde33c3979bf02b793d392aca0403162Wink Saville
47767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The phone state. One of the following:<p>
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <ul>
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <li>IDLE = no phone activity</li>
51767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <li>RINGING = a phone call is ringing or call waiting.
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  In the latter case, another call is active as well</li>
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <li>OFFHOOK = The phone is off hook. At least one call
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * exists that is dialing, active or holding and no calls are
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * ringing or waiting.</li>
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * </ul>
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    enum State {
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        IDLE, RINGING, OFFHOOK;
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    };
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The state of a data connection.
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <ul>
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <li>CONNECTED = IP traffic should be available</li>
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <li>CONNECTING = Currently setting up data connection</li>
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <li>DISCONNECTED = IP not available</li>
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <li>SUSPENDED = connection is created but IP traffic is
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *                 temperately not available. i.e. voice call is in place
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *                 in 2G network</li>
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * </ul>
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    enum DataState {
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        CONNECTED, CONNECTING, DISCONNECTED, SUSPENDED;
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    };
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
77767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public enum DataActivityState {
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The state of a data activity.
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <ul>
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <li>NONE = No traffic</li>
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <li>DATAIN = Receiving IP ppp traffic</li>
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <li>DATAOUT = Sending IP ppp traffic</li>
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <li>DATAINANDOUT = Both receiving and sending IP ppp traffic</li>
859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * </ul>
869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        NONE, DATAIN, DATAOUT, DATAINANDOUT;
889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    };
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    enum SuppService {
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project      UNKNOWN, SWITCH, SEPARATE, TRANSFER, CONFERENCE, REJECT, HANGUP;
929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    };
939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String STATE_KEY = "state";
959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String PHONE_NAME_KEY = "phoneName";
969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String FAILURE_REASON_KEY = "reason";
979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String STATE_CHANGE_REASON_KEY = "reason";
989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String DATA_APN_TYPE_KEY = "apnType";
999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String DATA_APN_KEY = "apn";
1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String DATA_IFACE_NAME_KEY = "iface";
1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String NETWORK_UNAVAILABLE_KEY = "networkUnvailable";
1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * APN types for data connections.  These are usage categories for an APN
1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * entry.  One APN entry may support multiple APN types, eg, a single APN
1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * may service regular internet traffic ("default") as well as MMS-specific
1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * connections.<br/>
1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * APN_TYPE_ALL is a special type to indicate that this APN entry can
1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * service all data connections.
1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String APN_TYPE_ALL = "*";
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /** APN type for default data traffic */
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String APN_TYPE_DEFAULT = "default";
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /** APN type for MMS traffic */
1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String APN_TYPE_MMS = "mms";
11642ad56ead40f6c5986bd2d298b1d36f42da489a1Mike Lockwood    /** APN type for SUPL assisted GPS */
11742ad56ead40f6c5986bd2d298b1d36f42da489a1Mike Lockwood    static final String APN_TYPE_SUPL = "supl";
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // "Features" accessible through the connectivity manager
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String FEATURE_ENABLE_MMS = "enableMMS";
12142ad56ead40f6c5986bd2d298b1d36f42da489a1Mike Lockwood    static final String FEATURE_ENABLE_SUPL = "enableSUPL";
1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Return codes for <code>enableApnType()</code>
1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int APN_ALREADY_ACTIVE     = 0;
1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int APN_REQUEST_STARTED    = 1;
1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int APN_TYPE_NOT_AVAILABLE = 2;
1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int APN_REQUEST_FAILED     = 3;
1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Optional reasons for disconnect and connect
1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_ROAMING_ON = "roamingOn";
1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_ROAMING_OFF = "roamingOff";
1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_DATA_DISABLED = "dataDisabled";
1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_DATA_ENABLED = "dataEnabled";
1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_GPRS_ATTACHED = "gprsAttached";
1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_GPRS_DETACHED = "gprsDetached";
141767a662ecde33c3979bf02b793d392aca0403162Wink Saville    static final String REASON_CDMA_DATA_ATTACHED = "cdmaDataAttached";
142767a662ecde33c3979bf02b793d392aca0403162Wink Saville    static final String REASON_CDMA_DATA_DETACHED = "cdmaDataDetached";
1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_APN_CHANGED = "apnChanged";
1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_APN_SWITCHED = "apnSwitched";
1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_RESTORE_DEFAULT_APN = "restoreDefaultApn";
1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_RADIO_TURNED_OFF = "radioTurnedOff";
1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_PDP_RESET = "pdpReset";
1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_VOICE_CALL_ENDED = "2GVoiceCallEnded";
1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final String REASON_VOICE_CALL_STARTED = "2GVoiceCallStarted";
1504df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project    static final String REASON_PS_RESTRICT_ENABLED = "psRestrictEnabled";
1514df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project    static final String REASON_PS_RESTRICT_DISABLED = "psRestrictDisabled";
152ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project    static final String REASON_SIM_LOADED = "simLoaded";
1534df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project
1544df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project    // Used for band mode selection methods
1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int BM_UNSPECIFIED = 0; // selected by baseband automatically
1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int BM_EURO_BAND   = 1; // GSM-900 / DCS-1800 / WCDMA-IMT-2000
1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int BM_US_BAND     = 2; // GSM-850 / PCS-1900 / WCDMA-850 / WCDMA-PCS-1900
1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int BM_JPN_BAND    = 3; // WCDMA-800 / WCDMA-IMT-2000
1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int BM_AUS_BAND    = 4; // GSM-900 / DCS-1800 / WCDMA-850 / WCDMA-IMT-2000
1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int BM_AUS2_BAND   = 5; // GSM-900 / DCS-1800 / WCDMA-850
1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static final int BM_BOUNDARY    = 6; // upper band boundary
1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // Used for preferred network type
164767a662ecde33c3979bf02b793d392aca0403162Wink Saville    // Note NT_* substitute RILConstants.NETWORK_MODE_* above the Phone
165767a662ecde33c3979bf02b793d392aca0403162Wink Saville    int NT_MODE_WCDMA_PREF   = 0; /* GSM/WCDMA (WCDMA preferred) */
166767a662ecde33c3979bf02b793d392aca0403162Wink Saville    int NT_MODE_GSM_ONLY     = 1; /* GSM only */
167767a662ecde33c3979bf02b793d392aca0403162Wink Saville    int NT_MODE_WCDMA_ONLY   = 2; /* WCDMA only */
168767a662ecde33c3979bf02b793d392aca0403162Wink Saville    int NT_MODE_GSM_UMTS     = 3; /* GSM/WCDMA (auto mode, according to PRL)
169767a662ecde33c3979bf02b793d392aca0403162Wink Saville                                     AVAILABLE Application Settings menu*/
170767a662ecde33c3979bf02b793d392aca0403162Wink Saville    int NT_MODE_CDMA         = 4; /* CDMA and EvDo (auto mode, according to PRL)
171767a662ecde33c3979bf02b793d392aca0403162Wink Saville                                     AVAILABLE Application Settings menu*/
172767a662ecde33c3979bf02b793d392aca0403162Wink Saville    int NT_MODE_CDMA_NO_EVDO = 5; /* CDMA only */
173767a662ecde33c3979bf02b793d392aca0403162Wink Saville    int NT_MODE_EVDO_NO_CDMA = 6; /* EvDo only */
174767a662ecde33c3979bf02b793d392aca0403162Wink Saville    int NT_MODE_GLOBAL       = 7; /* GSM/WCDMA, CDMA, and EvDo (auto mode, according to PRL)
175767a662ecde33c3979bf02b793d392aca0403162Wink Saville                                     AVAILABLE Application Settings menu*/
17644038aa032ffd876f3c9b20a84db9d189f77e18eWink Saville    int PREFERRED_NT_MODE    = NT_MODE_GSM_ONLY;
177767a662ecde33c3979bf02b793d392aca0403162Wink Saville
178767a662ecde33c3979bf02b793d392aca0403162Wink Saville
179767a662ecde33c3979bf02b793d392aca0403162Wink Saville    // Used for CDMA roaming mode
180767a662ecde33c3979bf02b793d392aca0403162Wink Saville    static final int CDMA_RM_HOME        = 0;  //Home Networks only, as defined in PRL
181767a662ecde33c3979bf02b793d392aca0403162Wink Saville    static final int CDMA_RM_AFFILIATED = 1;  //Roaming an Affiliated networks, as defined in PRL
182767a662ecde33c3979bf02b793d392aca0403162Wink Saville    static final int CDMA_RM_ANY        = 2;  //Roaming on Any Network, as defined in PRL
183767a662ecde33c3979bf02b793d392aca0403162Wink Saville
184767a662ecde33c3979bf02b793d392aca0403162Wink Saville    // Used for CDMA subscription mode
185767a662ecde33c3979bf02b793d392aca0403162Wink Saville    static final int CDMA_SUBSCRIPTION_RUIM_SIM    = 0; //RUIM/SIM (default)
186767a662ecde33c3979bf02b793d392aca0403162Wink Saville    static final int CDMA_SUBSCRIPTION_NV        = 1; //NV -> non-volatile memory
187767a662ecde33c3979bf02b793d392aca0403162Wink Saville
188767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
189767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Get the current ServiceState. Use
1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>registerForServiceStateChanged</code> to be informed of
1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * updates.
1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    ServiceState getServiceState();
1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get the current CellLocation.
1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    CellLocation getCellLocation();
199767a662ecde33c3979bf02b793d392aca0403162Wink Saville
2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get the current DataState. No change notification exists at this
202767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * interface -- use
203767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * {@link com.android.internal.telephony.PhoneStateIntentReceiver PhoneStateIntentReceiver}
204767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * instead.
2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    DataState getDataConnectionState();
2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get the current DataActivityState. No change notification exists at this
2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * interface -- use
2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link TelephonyManager} instead.
2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    DataActivityState getDataActivityState();
214767a662ecde33c3979bf02b793d392aca0403162Wink Saville
2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Gets the context for the phone, as set at initialization time.
2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Context getContext();
2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
220767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
221767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Disables the DNS check (i.e., allows "0.0.0.0").
222767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Useful for lab testing environment.
223767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param b true disables the check, false enables.
224767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
225767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void disableDnsCheck(boolean b);
226767a662ecde33c3979bf02b793d392aca0403162Wink Saville
227767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
228767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Returns true if the DNS check is currently disabled.
229767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
230767a662ecde33c3979bf02b793d392aca0403162Wink Saville    boolean isDnsCheckDisabled();
231767a662ecde33c3979bf02b793d392aca0403162Wink Saville
232767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get current coarse-grained voice call state.
234767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Use {@link #registerForPhoneStateChanged(Handler, int, Object)
2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * registerForPhoneStateChanged()} for change notification. <p>
2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If the phone has an active call and call waiting occurs,
2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * then the phone state is RINGING not OFFHOOK
238767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <strong>Note:</strong>
2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * This registration point provides notification of finer-grained
2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * changes.<p>
2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    State getState();
2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
245767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns a string identifier for this phone interface for parties
2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  outside the phone app process.
2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  @return The string name.
2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getPhoneName();
2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
252767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns an array of string identifiers for the APN types serviced by the
2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * currently active or last connected APN.
2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  @return The string array.
2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String[] getActiveApnTypes();
258767a662ecde33c3979bf02b793d392aca0403162Wink Saville
259767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns a string identifier for currently active or last connected APN.
2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  @return The string name.
2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getActiveApn();
264767a662ecde33c3979bf02b793d392aca0403162Wink Saville
265767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get current signal strength. No change notification available on this
2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * interface. Use <code>PhoneStateNotifier</code> or an equivalent.
268767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * An ASU is 0-31 or -1 if unknown (for GSM, dBm = -113 - 2 * asu).
2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The following special values are defined:</p>
2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <ul><li>0 means "-113 dBm or less".</li>
2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <li>31 means "-51 dBm or greater".</li></ul>
272767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return Current signal strength in ASU's.
2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getSignalStrengthASU();
276767a662ecde33c3979bf02b793d392aca0403162Wink Saville
277767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Notifies when a previously untracked non-ringing/waiting connection has appeared.
2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * This is likely due to some other entity (eg, SIM card application) initiating a call.
2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForUnknownConnection(Handler h, int what, Object obj);
2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Unregisters for unknown connection notifications.
2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForUnknownConnection(Handler h);
2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
288767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Notifies when any aspect of the voice call state changes.
2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Resulting events will have an AsyncResult in <code>Message.obj</code>.
2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * AsyncResult.userData will be set to the obj argument here.
2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The <em>h</em> parameter is held only by a weak reference.
2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForPhoneStateChanged(Handler h, int what, Object obj);
2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
297767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for voice call state change notifications.
2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently.
2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForPhoneStateChanged(Handler h);
3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
303767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Notifies when a new ringing or waiting connection has appeared.<p>
3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Messages received from this:
3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Message.obj will be an AsyncResult
3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  AsyncResult.userObj = obj
3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  AsyncResult.result = a Connection. <p>
3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Please check Connection.isRinging() to make sure the Connection
3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  has not dropped since this message was posted.
312767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *  If Connection.isRinging() is true, then
3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *   Connection.getCall() == Phone.getRingingCall()
3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForNewRingingConnection(Handler h, int what, Object obj);
3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
318767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for new ringing connection notification.
3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForNewRingingConnection(Handler h);
3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
324767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Notifies when an incoming call rings.<p>
3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Messages received from this:
3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Message.obj will be an AsyncResult
3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  AsyncResult.userObj = obj
3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  AsyncResult.result = a Connection. <p>
3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForIncomingRing(Handler h, int what, Object obj);
333767a662ecde33c3979bf02b793d392aca0403162Wink Saville
3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
335767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for ring notification.
3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
338767a662ecde33c3979bf02b793d392aca0403162Wink Saville
3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForIncomingRing(Handler h);
340767a662ecde33c3979bf02b793d392aca0403162Wink Saville
341767a662ecde33c3979bf02b793d392aca0403162Wink Saville
342767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Notifies when a voice connection has disconnected, either due to local
3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * or remote hangup or error.
345767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Messages received from this will have the following members:<p>
3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  <ul><li>Message.obj will be an AsyncResult</li>
3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  <li>AsyncResult.userObj = obj</li>
349767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *  <li>AsyncResult.result = a Connection object that is
3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  no longer connected.</li></ul>
3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForDisconnect(Handler h, int what, Object obj);
3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
355767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for voice disconnection notification.
3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForDisconnect(Handler h);
3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Register for notifications of initiation of a new MMI code request.
3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * MMI codes for GSM are discussed in 3GPP TS 22.030.<p>
3649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Example: If Phone.dial is called with "*#31#", then the app will
3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * be notified here.<p>
3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The returned <code>Message.obj</code> will contain an AsyncResult.
3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>obj.result</code> will be an "MmiCode" object.
3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForMmiInitiate(Handler h, int what, Object obj);
3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
375767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for new MMI initiate notification.
3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForMmiInitiate(Handler h);
3799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Register for notifications that an MMI request has completed
3829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * its network activity and is in its final state. This may mean a state
3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of COMPLETE, FAILED, or CANCELLED.
3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
3859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>Message.obj</code> will contain an AsyncResult.
3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>obj.result</code> will be an "MmiCode" object
3879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForMmiComplete(Handler h, int what, Object obj);
3899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
391767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for MMI complete notification.
3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
3939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForMmiComplete(Handler h);
3959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns a list of MMI codes that are pending. (They have initiated
3989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * but have not yet completed).
3999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Presently there is only ever one.
400767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Use <code>registerForMmiInitiate</code>
4019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * and <code>registerForMmiComplete</code> for change notification.
4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public List<? extends MmiCode> getPendingMmiCodes();
4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
4069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Sends user response to a USSD REQUEST message.  An MmiCode instance
4079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * representing this response is sent to handlers registered with
4089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * registerForMmiInitiate.
4099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
4109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param ussdMessge    Message to send in the response.
4119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void sendUssdResponse(String ussdMessge);
4139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
415767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Register for ServiceState changed.
4169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Message.obj will contain an AsyncResult.
4179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * AsyncResult.result will be a ServiceState instance
4189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForServiceStateChanged(Handler h, int what, Object obj);
4209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
422767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for ServiceStateChange notification.
4239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
4249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForServiceStateChanged(Handler h);
4269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
4289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Register for Supplementary Service notifications from the network.
4299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Message.obj will contain an AsyncResult.
4309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * AsyncResult.result will be a SuppServiceNotification instance.
4319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
4329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param h Handler that receives the notification message.
4339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param what User-defined message code.
4349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param obj User object.
4359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForSuppServiceNotification(Handler h, int what, Object obj);
4379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
439767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unregisters for Supplementary Service notifications.
4409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
441767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
4429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param h Handler to be removed from the registrant list.
4439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForSuppServiceNotification(Handler h);
4459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Register for notifications when a supplementary service attempt fails.
4489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Message.obj will contain an AsyncResult.
4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
4509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param h Handler that receives the notification message.
4519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param what User-defined message code.
4529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param obj User object.
4539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerForSuppServiceFailed(Handler h, int what, Object obj);
4559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
4579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Unregister for notifications when a supplementary service attempt fails.
4589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Extraneous calls are tolerated silently
459767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
4609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param h Handler to be removed from the registrant list.
4619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterForSuppServiceFailed(Handler h);
4639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
464767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
465767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Register for notifications when a sInCall VoicePrivacy is enabled
466767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
467767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param h Handler that receives the notification message.
468767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param what User-defined message code.
469767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param obj User object.
470767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
471767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void registerForInCallVoicePrivacyOn(Handler h, int what, Object obj);
472767a662ecde33c3979bf02b793d392aca0403162Wink Saville
473767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
474767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unegister for notifications when a sInCall VoicePrivacy is enabled
475767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
476767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param h Handler to be removed from the registrant list.
477767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
478767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void unregisterForInCallVoicePrivacyOn(Handler h);
479767a662ecde33c3979bf02b793d392aca0403162Wink Saville
480767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
481767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Register for notifications when a sInCall VoicePrivacy is disabled
482767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
483767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param h Handler that receives the notification message.
484767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param what User-defined message code.
485767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param obj User object.
486767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
487767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void registerForInCallVoicePrivacyOff(Handler h, int what, Object obj);
488767a662ecde33c3979bf02b793d392aca0403162Wink Saville
489767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
490767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Unegister for notifications when a sInCall VoicePrivacy is disabled
491767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
492767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param h Handler to be removed from the registrant list.
493767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
494767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void unregisterForInCallVoicePrivacyOff(Handler h);
495767a662ecde33c3979bf02b793d392aca0403162Wink Saville
496767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
497767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Returns SIM record load state. Use
4989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>getSimCard().registerForReady()</code> for change notification.
4999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
500767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @return true if records from the SIM have been loaded and are
5019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * available (if applicable). If not applicable to the underlying
5029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * technology, returns true as well.
5039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
504767a662ecde33c3979bf02b793d392aca0403162Wink Saville    boolean getIccRecordsLoaded();
5059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
507767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Returns the ICC card interface for this phone, or null
5089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * if not applicable to underlying technology.
5099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
510767a662ecde33c3979bf02b793d392aca0403162Wink Saville    IccCard getIccCard();
5119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
513767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Answers a ringing or waiting call. Active calls, if any, go on hold.
5149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Answering occurs asynchronously, and final notification occurs via
515767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * {@link #registerForPhoneStateChanged(android.os.Handler, int,
5169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * java.lang.Object) registerForPhoneStateChanged()}.
5179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
5189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @exception CallStateException when no call is ringing or waiting
5199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
5209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void acceptCall() throws CallStateException;
5219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
522767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
523767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Reject (ignore) a ringing call. In GSM, this means UDUB
524767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * (User Determined User Busy). Reject occurs asynchronously,
525767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * and final notification occurs via
526767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * {@link #registerForPhoneStateChanged(android.os.Handler, int,
5279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * java.lang.Object) registerForPhoneStateChanged()}.
5289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
5299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @exception CallStateException when no call is ringing or waiting
5309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
5319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void rejectCall() throws CallStateException;
5329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
533767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
5349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Places any active calls on hold, and makes any held calls
5359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  active. Switch occurs asynchronously and may fail.
536767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Final notification occurs via
537767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * {@link #registerForPhoneStateChanged(android.os.Handler, int,
5389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * java.lang.Object) registerForPhoneStateChanged()}.
5399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
5409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @exception CallStateException if a call is ringing, waiting, or
5419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * dialing/alerting. In these cases, this operation may not be performed.
5429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
5439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void switchHoldingAndActive() throws CallStateException;
5449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
546767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Whether or not the phone can conference in the current phone
5479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * state--that is, one call holding and one call active.
548767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @return true if the phone can conference; false otherwise.
5499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
5509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean canConference();
5519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
553767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Conferences holding and active. Conference occurs asynchronously
554767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * and may fail. Final notification occurs via
555767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * {@link #registerForPhoneStateChanged(android.os.Handler, int,
556767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * java.lang.Object) registerForPhoneStateChanged()}.
557767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
5589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @exception CallStateException if canConference() would return false.
5599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In these cases, this operation may not be performed.
5609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
5619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void conference() throws CallStateException;
5629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
564767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Enable or disable enhanced Voice Privacy (VP). If enhanced VP is
565767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * disabled, normal VP is enabled.
566767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
567767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param enable whether true or false to enable or disable.
568767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param onComplete a callback message when the action is completed.
569767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
570767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void enableEnhancedVoicePrivacy(boolean enable, Message onComplete);
571767a662ecde33c3979bf02b793d392aca0403162Wink Saville
572767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
573767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Get the currently set Voice Privacy (VP) mode.
574767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
575767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param onComplete a callback message when the action is completed.
576767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
577767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void getEnhancedVoicePrivacy(Message onComplete);
578767a662ecde33c3979bf02b793d392aca0403162Wink Saville
579767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
5809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Whether or not the phone can do explicit call transfer in the current
5819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * phone state--that is, one call holding and one call active.
5829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the phone can do explicit call transfer; false otherwise.
5839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
5849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean canTransfer();
5859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
5879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Connects the two calls and disconnects the subscriber from both calls
5889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Explicit Call Transfer occurs asynchronously
5899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * and may fail. Final notification occurs via
5909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #registerForPhoneStateChanged(android.os.Handler, int,
5919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * java.lang.Object) registerForPhoneStateChanged()}.
5929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
5939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @exception CallStateException if canTransfer() would return false.
5949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In these cases, this operation may not be performed.
5959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
5969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void explicitCallTransfer() throws CallStateException;
5979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
5999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Clears all DISCONNECTED connections from Call connection lists.
6009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Calls that were in the DISCONNECTED state become idle. This occurs
6019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * synchronously.
6029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
6039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void clearDisconnected();
6049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
606767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
607767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Gets the foreground call object, which represents all connections that
608767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * are dialing or active (all connections
6099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * that have their audio path connected).<p>
6109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
6119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The foreground call is a singleton object. It is constant for the life
6129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of this phone. It is never null.<p>
613767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
6149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The foreground call will only ever be in one of these states:
615767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * IDLE, ACTIVE, DIALING, ALERTING, or DISCONNECTED.
6169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
6179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * State change notification is available via
618767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * {@link #registerForPhoneStateChanged(android.os.Handler, int,
6199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * java.lang.Object) registerForPhoneStateChanged()}.
6209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
6219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Call getForegroundCall();
6229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
623767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
6249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Gets the background call object, which represents all connections that
6259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * are holding (all connections that have been accepted or connected, but
6269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * do not have their audio path connected). <p>
6279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
6289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The background call is a singleton object. It is constant for the life
6299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of this phone object . It is never null.<p>
630767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
6319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The background call will only ever be in one of these states:
6329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * IDLE, HOLDING or DISCONNECTED.
6339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
6349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * State change notification is available via
635767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * {@link #registerForPhoneStateChanged(android.os.Handler, int,
6369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * java.lang.Object) registerForPhoneStateChanged()}.
6379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
6389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Call getBackgroundCall();
6399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
640767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
641767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Gets the ringing call object, which represents an incoming
6429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * connection (if present) that is pending answer/accept. (This connection
6439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * may be RINGING or WAITING, and there may be only one.)<p>
6449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The ringing call is a singleton object. It is constant for the life
6469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of this phone. It is never null.<p>
647767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
6489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The ringing call will only ever be in one of these states:
6499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * IDLE, INCOMING, WAITING or DISCONNECTED.
6509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
6519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * State change notification is available via
652767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * {@link #registerForPhoneStateChanged(android.os.Handler, int,
6539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * java.lang.Object) registerForPhoneStateChanged()}.
6549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
6559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Call getRingingCall();
6569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
657767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
6589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Initiate a new voice connection. This happens asynchronously, so you
6599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * cannot assume the audio path is connected (or a call index has been
6609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * assigned) until PhoneStateChanged notification has occurred.
6619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
6629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @exception CallStateException if a new outgoing call is not currently
663767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * possible because no more call slots exist or a call exists that is
664767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * dialing, alerting, ringing, or waiting.  Other errors are
6659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * handled asynchronously.
6669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
6679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Connection dial(String dialString) throws CallStateException;
6689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
6709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Handles PIN MMI commands (PIN/PIN2/PUK/PUK2), which are initiated
6719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * without SEND (so <code>dial</code> is not appropriate).
672767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
6739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param dialString the MMI command to be executed.
6749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if MMI command is executed.
6759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
6769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean handlePinMmi(String dialString);
6779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
6799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Handles in-call MMI commands. While in a call, or while receiving a
6809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * call, use this to execute MMI commands.
6819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * see 3GPP 20.030, section 6.5.5.1 for specs on the allowed MMI commands.
6829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
6839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param command the MMI command to be executed.
6849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the MMI command is executed.
6859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @throws CallStateException
6869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
6879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean handleInCallMmiCommands(String command) throws CallStateException;
6889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
690767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Play a DTMF tone on the active call. Ignored if there is no active call.
6919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param c should be one of 0-9, '*' or '#'. Other values will be
6929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * silently ignored.
6939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
6949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void sendDtmf(char c);
6959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
6979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Start to paly a DTMF tone on the active call. Ignored if there is no active call
6989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * or there is a playing DTMF tone.
6999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param c should be one of 0-9, '*' or '#'. Other values will be
7009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * silently ignored.
7019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void startDtmf(char c);
7039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
7059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Stop the playing DTMF tone. Ignored if there is no playing DTMF
7069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * tone or no active call.
7079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void stopDtmf();
7099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
712767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Sets the radio power on/off state (off is sometimes
713767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * called "airplane mode"). Current state can be gotten via
714767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * {@link #getServiceState()}.{@link
7159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * android.telephony.ServiceState#getState() getState()}.
716767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <strong>Note: </strong>This request is asynchronous.
7179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * getServiceState().getState() will not change immediately after this call.
718767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * registerForServiceStateChanged() to find out when the
7199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * request is complete.
7209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
721767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param power true means "on", false means "off".
7229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setRadioPower(boolean power);
7249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
725767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
7269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get voice message waiting indicator status. No change notification
7279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * available on this interface. Use PhoneStateNotifier or similar instead.
7289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
7299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if there is a voice message waiting
7309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean getMessageWaitingIndicator();
7329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
7349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get voice call forwarding indicator status. No change notification
7359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * available on this interface. Use PhoneStateNotifier or similar instead.
7369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
7379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if there is a voice call forwarding
7389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean getCallForwardingIndicator();
7409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
7429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get the line 1 phone number (MSISDN).<p>
7439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
7449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return phone number. May return null if not
7459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * available or the SIM is not ready
7469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getLine1Number();
7489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
7509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the alpha tag associated with the msisdn number.
7519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If there is no alpha tag associated or the record is not yet available,
7529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * returns a default localized string. <p>
7539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getLine1AlphaTag();
7559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
7579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Sets the MSISDN phone number in the SIM card.
7589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
7599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param alphaTag the alpha tag associated with the MSISDN phone number
7609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *        (see getMsisdnAlphaTag)
7619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param number the new MSISDN phone number to be set on the SIM.
7629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
7639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setLine1Number(String alphaTag, String number, Message onComplete);
7659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
767767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Get the voice mail access phone number. Typically dialed when the
768767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * user holds the "1" key in the phone app. May return null if not
7699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * available or the SIM is not ready.<p>
7709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getVoiceMailNumber();
7729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
7749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the alpha tag associated with the voice mail number.
7759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If there is no alpha tag associated or the record is not yet available,
7769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * returns a default localized string. <p>
777767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
778767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Please use this value instead of some other localized string when
7799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * showing a name for this number in the UI. For example, call log
7809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * entries should show this alpha tag. <p>
7819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
7829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Usage of this alpha tag in the UI is a common carrier requirement.
7839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getVoiceMailAlphaTag();
7859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
7879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * setVoiceMailNumber
7889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * sets the voicemail number in the SIM card.
7899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
7909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param alphaTag the alpha tag associated with the voice mail number
7919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *        (see getVoiceMailAlphaTag)
7929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param voiceMailNumber the new voicemail number to be set on the SIM.
7939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
7949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setVoiceMailNumber(String alphaTag,
7969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            String voiceMailNumber,
7979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            Message onComplete);
7989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * getCallForwardingOptions
801767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * gets a call forwarding option. The return value of
802767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * ((AsyncResult)onComplete.obj) is an array of CallForwardInfo.
803767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
804767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param commandInterfaceCFReason is one of the valid call forwarding
805767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        CF_REASONS, as defined in
806767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        <code>com.android.internal.telephony.CommandsInterface./code>
8079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
808767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        @see com.android.internal.telephony.CallForwardInfo for details.
8099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void getCallForwardingOption(int commandInterfaceCFReason,
8119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                  Message onComplete);
812767a662ecde33c3979bf02b793d392aca0403162Wink Saville
8139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * setCallForwardingOptions
8159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * sets a call forwarding option.
816767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
817767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param commandInterfaceCFReason is one of the valid call forwarding
818767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        CF_REASONS, as defined in
819767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        <code>com.android.internal.telephony.CommandsInterface./code>
820767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param commandInterfaceCFAction is one of the valid call forwarding
821767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        CF_ACTIONS, as defined in
822767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        <code>com.android.internal.telephony.CommandsInterface./code>
823767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param dialingNumber is the target phone number to forward calls to
8249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param timerSeconds is used by CFNRy to indicate the timeout before
8259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *        forwarding is attempted.
8269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
8279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setCallForwardingOption(int commandInterfaceCFReason,
8299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                 int commandInterfaceCFAction,
8309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                 String dialingNumber,
8319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                 int timerSeconds,
8329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                 Message onComplete);
833767a662ecde33c3979bf02b793d392aca0403162Wink Saville
8349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * getOutgoingCallerIdDisplay
836767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * gets outgoing caller id display. The return value of
8379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * ((AsyncResult)onComplete.obj) is an array of int, with a length of 2.
838767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
8399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
840767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        @see com.android.internal.telephony.CommandsInterface.getCLIR for details.
8419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void getOutgoingCallerIdDisplay(Message onComplete);
843767a662ecde33c3979bf02b793d392aca0403162Wink Saville
8449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * setOutgoingCallerIdDisplay
846767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * sets a call forwarding option.
847767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
848767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param commandInterfaceCLIRMode is one of the valid call CLIR
849767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        modes, as defined in
850767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        <code>com.android.internal.telephony.CommandsInterface./code>
8519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
8529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setOutgoingCallerIdDisplay(int commandInterfaceCLIRMode,
8549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                    Message onComplete);
855767a662ecde33c3979bf02b793d392aca0403162Wink Saville
8569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * getCallWaiting
858767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * gets call waiting activation state. The return value of
8599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * ((AsyncResult)onComplete.obj) is an array of int, with a length of 1.
860767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
8619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
862767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        @see com.android.internal.telephony.CommandsInterface.queryCallWaiting for details.
8639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void getCallWaiting(Message onComplete);
865767a662ecde33c3979bf02b793d392aca0403162Wink Saville
8669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * setCallWaiting
868767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * sets a call forwarding option.
869767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
870767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param enable is a boolean representing the state that you are
8719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *        requesting, true for enabled, false for disabled.
8729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param onComplete a callback message when the action is completed.
8739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setCallWaiting(boolean enable, Message onComplete);
875767a662ecde33c3979bf02b793d392aca0403162Wink Saville
8769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Scan available networks. This method is asynchronous; .
8789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * On completion, <code>response.obj</code> is set to an AsyncResult with
8799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * one of the following members:.<p>
8809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *<ul>
881767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <li><code>response.obj.result</code> will be a <code>List</code> of
882767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <code>com.android.internal.telephony.gsm.NetworkInfo</code> objects, or</li>
883767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <li><code>response.obj.exception</code> will be set with an exception
8849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * on failure.</li>
8859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * </ul>
8869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
887767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void getAvailableNetworks(Message response);
8889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Switches network selection mode to "automatic", re-scanning and
8919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * re-selecting a network if appropriate.
892767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
893767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response The message to dispatch when the network selection
8949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * is complete.
895767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
896767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @see #selectNetworkManually(com.android.internal.telephony.gsm.NetworkInfo,
8979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * android.os.Message )
8989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
8999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setNetworkSelectionModeAutomatic(Message response);
9009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
902767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Manually selects a network. <code>response</code> is
9039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * dispatched when this is complete.  <code>response.obj</code> will be
9049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * an AsyncResult, and <code>response.obj.exception</code> will be non-null
9059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * on failure.
906767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
9079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see #setNetworkSelectionModeAutomatic(Message)
9089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
909767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void selectNetworkManually(NetworkInfo network,
9109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            Message response);
9119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
9139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Requests to set the preferred network type for searching and registering
9149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (CS/PS domain, RAT, and operation mode)
9159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param networkType one of  NT_*_TYPE
9169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param response is callback message
9179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
9189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setPreferredNetworkType(int networkType, Message response);
9199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
9219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *  Query the preferred network type setting
9229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
9239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param response is callback message to report one of  NT_*_TYPE
9249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
9259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void getPreferredNetworkType(Message response);
9269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
9289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Query neighboring cell IDs.  <code>response</code> is dispatched when
9299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * this is complete.  <code>response.obj</code> will be an AsyncResult,
9309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * and <code>response.obj.exception</code> will be non-null on failure.
9319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * On success, <code>AsyncResult.result</code> will be a <code>String[]</code>
9329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * containing the neighboring cell IDs.  Index 0 will contain the count
9339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of available cell IDs.  Cell IDs are in hexadecimal format.
9349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
9359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param response callback message that is dispatched when the query
936767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * completes.
9379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
9389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void getNeighboringCids(Message response);
9399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
9419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Sets an event to be fired when the telephony system processes
9429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * a post-dial character on an outgoing call.<p>
9439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
9449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Messages of type <code>what</code> will be sent to <code>h</code>.
9459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The <code>obj</code> field of these Message's will be instances of
9469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>AsyncResult</code>. <code>Message.obj.result</code> will be
9479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * a Connection object.<p>
9489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
949767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Message.arg1 will be the post dial character being processed,
9509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * or 0 ('\0') if end of string.<p>
9519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
952767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * If Connection.getPostDialState() == WAIT,
953767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * the application must call
954767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * {@link com.android.internal.telephony.Connection#proceedAfterWaitChar()
955767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Connection.proceedAfterWaitChar()} or
956767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * {@link com.android.internal.telephony.Connection#cancelPostDial()
9579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Connection.cancelPostDial()}
958767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * for the telephony system to continue playing the post-dial
9599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * DTMF sequence.<p>
9609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
961767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * If Connection.getPostDialState() == WILD,
962767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * the application must call
9639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link com.android.internal.telephony.Connection#proceedAfterWildChar
9649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Connection.proceedAfterWildChar()}
965767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * or
966767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * {@link com.android.internal.telephony.Connection#cancelPostDial()
9679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Connection.cancelPostDial()}
968767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * for the telephony system to continue playing the
9699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * post-dial DTMF sequence.<p>
970767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
9719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Only one post dial character handler may be set. <p>
9729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Calling this method with "h" equal to null unsets this handler.<p>
9739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
9749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setOnPostDialCharacter(Handler h, int what, Object obj);
9759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
978767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Mutes or unmutes the microphone for the active call. The microphone
979767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * is automatically unmuted if a call is answered, dialed, or resumed
9809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * from a holding state.
981767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
982767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param muted true to mute the microphone,
9839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * false to activate the microphone.
9849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
9859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setMute(boolean muted);
9879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
989767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Gets current mute status. Use
990767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * {@link #registerForPhoneStateChanged(android.os.Handler, int,
9919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * java.lang.Object) registerForPhoneStateChanged()}
9929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * as a change notifcation, although presently phone state changed is not
9939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * fired when setMute() is called.
9949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
9959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true is muting, false is unmuting
9969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
9979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean getMute();
9989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
10009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Invokes RIL_REQUEST_OEM_HOOK_RAW on RIL implementation.
1001767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
10029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param data The data for the request.
1003767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response <strong>On success</strong>,
10049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (byte[])(((AsyncResult)response.obj).result)
1005767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <strong>On failure</strong>,
1006767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * (((AsyncResult)response.obj).result) == null and
10079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (((AsyncResult)response.obj).exception) being an instance of
10089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * com.android.internal.telephony.gsm.CommandException
10099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
10109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see #invokeOemRilRequestRaw(byte[], android.os.Message)
10119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
10129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void invokeOemRilRequestRaw(byte[] data, Message response);
10139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
10159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Invokes RIL_REQUEST_OEM_HOOK_Strings on RIL implementation.
1016767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
10179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param strings The strings to make available as the request data.
1018767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response <strong>On success</strong>, "response" bytes is
10199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * made available as:
10209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (String[])(((AsyncResult)response.obj).result).
1021767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <strong>On failure</strong>,
1022767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * (((AsyncResult)response.obj).result) == null and
10239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (((AsyncResult)response.obj).exception) being an instance of
10249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * com.android.internal.telephony.gsm.CommandException
10259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
10269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see #invokeOemRilRequestStrings(java.lang.String[], android.os.Message)
10279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
10289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void invokeOemRilRequestStrings(String[] strings, Message response);
10299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
10319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get the current active PDP context list
10329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1033767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @deprecated
10349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param response <strong>On success</strong>, "response" bytes is
10359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * made available as:
10369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (String[])(((AsyncResult)response.obj).result).
10379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <strong>On failure</strong>,
10389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (((AsyncResult)response.obj).result) == null and
10399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (((AsyncResult)response.obj).exception) being an instance of
10409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * com.android.internal.telephony.gsm.CommandException
10419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
10429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void getPdpContextList(Message response);
10439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1045767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Get the current active Data Call list, substitutes getPdpContextList
1046767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1047767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response <strong>On success</strong>, "response" bytes is
1048767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * made available as:
1049767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * (String[])(((AsyncResult)response.obj).result).
1050767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * <strong>On failure</strong>,
1051767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * (((AsyncResult)response.obj).result) == null and
1052767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * (((AsyncResult)response.obj).exception) being an instance of
1053767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * com.android.internal.telephony.gsm.CommandException
1054767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1055767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void getDataCallList(Message response);
1056767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1057767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
10589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get current mutiple PDP link status
1059767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1060767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @deprecated
10619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return list of pdp link connections
10629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
10639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    List<PdpConnection> getCurrentPdpList ();
10649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1066767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Get current mutiple data connection status
1067767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1068767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @return list of data connections
1069767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1070767a662ecde33c3979bf02b793d392aca0403162Wink Saville    List<DataConnection> getCurrentDataConnectionList ();
1071767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1072767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
10739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Udpate LAC and CID in service state for currnet GSM netowrk registration
10749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
10759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If get different LAC and/or CID, notifyServiceState will be sent
10769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
10779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param
10789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <strong>On failure</strong>,
10799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (((AsyncResult)response.obj).result) == null and
10809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (((AsyncResult)response.obj).exception) being an instance of
10819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * com.android.internal.telephony.gsm.CommandException
10829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
10839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void updateServiceLocation(Message response);
10849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
10869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Enable location update notifications.
10879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
10889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void enableLocationUpdates();
10899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
10919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Disable location update notifications.
10929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
10939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void disableLocationUpdates();
10949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1096767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * For unit tests; don't send notifications to "Phone"
10979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * mailbox registrants if true.
10989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
10999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setUnitTestMode(boolean f);
1100767a662ecde33c3979bf02b793d392aca0403162Wink Saville
11019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
11029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true If unit test mode is enabled
11039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean getUnitTestMode();
11059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
11079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Assign a specified band for RF configuration.
11089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
11099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param bandMode one of BM_*_BAND
11109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param response is callback message
11119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setBandMode(int bandMode, Message response);
11139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
11159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Query the list of band mode supported by RF.
11169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
11179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param response is callback message
11189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *        ((AsyncResult)response.obj).result  is an int[] with every
11199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *        element representing one avialable BM_*_BAND
11209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void queryAvailableBandMode(Message response);
11229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
11249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if enable data connection on roaming
11259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean getDataRoamingEnabled();
11279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
11299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param enable set true if enable data connection on roaming
11309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setDataRoamingEnabled(boolean enable);
11329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1134767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *  Query the CDMA roaming preference setting
1135767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1136767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response is callback message to report one of  CDMA_RM_*
1137767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1138767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void queryCdmaRoamingPreference(Message response);
1139767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1140767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1141767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *  Requests to set the CDMA roaming preference
1142767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param cdmaRoamingType one of  CDMA_RM_*
1143767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response is callback message
1144767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1145767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void setCdmaRoamingPreference(int cdmaRoamingType, Message response);
1146767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1147767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1148767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *  Requests to set the CDMA subscription mode
1149767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param cdmaSubscriptionType one of  CDMA_SUBSCRIPTION_*
1150767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response is callback message
1151767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1152767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void setCdmaSubscription(int cdmaSubscriptionType, Message response);
1153767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1154767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
11559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If this is a simulated phone interface, returns a SimulatedRadioControl.
1156767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @ return A SimulatedRadioControl if this is a simulated interface;
11579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * otherwise, null.
11589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    SimulatedRadioControl getSimulatedRadioControl();
11609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
11629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Allow mobile data connections.
11639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return {@code true} if the operation started successfully
11649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <br/>{@code false} if it
11659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * failed immediately.<br/>
11669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Even in the {@code true} case, it may still fail later
11679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * during setup, in which case an asynchronous indication will
11689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * be supplied.
11699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean enableDataConnectivity();
11719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
11739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Disallow mobile data connections, and terminate any that
11749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * are in progress.
11759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return {@code true} if the operation started successfully
11769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <br/>{@code false} if it
11779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * failed immediately.<br/>
11789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Even in the {@code true} case, it may still fail later
11799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * during setup, in which case an asynchronous indication will
11809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * be supplied.
11819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean disableDataConnectivity();
11839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
11859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Enables the specified APN type. Only works for "special" APN types,
11869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * i.e., not the default APN.
11879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param type The desired APN type. Cannot be {@link #APN_TYPE_DEFAULT}.
11889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return <code>APN_ALREADY_ACTIVE</code> if the current APN
11899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * services the requested type.<br/>
11909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>APN_TYPE_NOT_AVAILABLE</code> if the carrier does not
11919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * support the requested APN.<br/>
11929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>APN_REQUEST_STARTED</code> if the request has been initiated.<br/>
11939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>APN_REQUEST_FAILED</code> if the request was invalid.<br/>
11949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * A <code>ACTION_ANY_DATA_CONNECTION_STATE_CHANGED</code> broadcast will
11959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * indicate connection state progress.
11969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
11979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int enableApnType(String type);
11989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Disables the specified APN type, and switches back to the default APN,
12019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * if necessary. Switching to the default APN will not happen if default
12029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * data traffic has been explicitly disabled via a call to {@link #disableDataConnectivity}.
12039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p/>Only works for "special" APN types,
12049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * i.e., not the default APN.
12059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param type The desired APN type. Cannot be {@link #APN_TYPE_DEFAULT}.
12069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return <code>APN_ALREADY_ACTIVE</code> if the default APN
12079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * is already active.<br/>
12089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>APN_REQUEST_STARTED</code> if the request to switch to the default
12099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * APN has been initiated.<br/>
12109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <code>APN_REQUEST_FAILED</code> if the request was invalid.<br/>
12119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * A <code>ACTION_ANY_DATA_CONNECTION_STATE_CHANGED</code> broadcast will
12129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * indicate connection state progress.
12139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int disableApnType(String type);
12159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Report on whether data connectivity is allowed.
12189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isDataConnectivityPossible();
12209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the name of the network interface used by the specified APN type.
12239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getInterfaceName(String apnType);
12259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the IP address of the network interface used by the specified
12289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * APN type.
12299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getIpAddress(String apnType);
12319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the gateway for the network interface used by the specified APN
12349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * type.
12359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getGateway(String apnType);
12379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the DNS servers for the network interface used by the specified
12409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * APN type.
12419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String[] getDnsServers(String apnType);
12439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1245767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Retrieves the unique device ID, e.g., IMEI for GSM phones and MEID for CDMA phones.
12469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getDeviceId();
12489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Retrieves the software version number for the device, e.g., IMEI/SV
12519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * for GSM phones.
12529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getDeviceSvn();
12549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
12569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Retrieves the unique sbuscriber ID, e.g., IMSI for GSM phones.
12579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
12589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getSubscriberId();
12599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1261767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Retrieves the serial number of the ICC, if applicable.
1262767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1263767a662ecde33c3979bf02b793d392aca0403162Wink Saville    String getIccSerialNumber();
1264767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1265767a662ecde33c3979bf02b793d392aca0403162Wink Saville    //***** CDMA support methods
1266767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1267767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1268767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1269767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Retrieves the ESN for CDMA phones.
12709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1271767a662ecde33c3979bf02b793d392aca0403162Wink Saville    String getEsn();
1272767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1273767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1274767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Retrieves MEID for CDMA phones.
1275767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1276767a662ecde33c3979bf02b793d392aca0403162Wink Saville    String getMeid();
1277767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1278767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1279767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Retrieves the PhoneSubInfo of the Phone
1280767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1281767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public PhoneSubInfo getPhoneSubInfo();
1282767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1283767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1284767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Retrieves the IccSmsInterfaceManager of the Phone
1285767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1286767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public IccSmsInterfaceManager getIccSmsInterfaceManager();
1287767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1288767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1289767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Retrieves the IccPhoneBookInterfaceManager of the Phone
1290767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1291767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public IccPhoneBookInterfaceManager getIccPhoneBookInterfaceManager();
1292767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1293767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1294767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * setTTYModeEnabled
1295767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * sets a TTY mode option.
1296767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1297767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param enable is a boolean representing the state that you are
1298767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *        requesting, true for enabled, false for disabled.
1299767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param onComplete a callback message when the action is completed
1300767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1301767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void setTTYModeEnabled(boolean enable, Message onComplete);
1302767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1303767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1304767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * queryTTYModeEnabled
1305767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * query the status of the TTY mode
1306767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1307767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param onComplete a callback message when the action is completed.
1308767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1309767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void queryTTYModeEnabled(Message onComplete);
1310767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1311767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1312767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Activate or deactivate cell broadcast SMS.
1313767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1314767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param activate
1315767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *            0 = activate, 1 = deactivate
1316767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response
1317767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *            Callback message is empty on completion
1318767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1319767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void activateCellBroadcastSms(int activate, Message response);
1320767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1321767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1322767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Query the current configuration of cdma cell broadcast SMS.
1323767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1324767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response
1325767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *            Callback message is empty on completion
1326767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1327767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void getCellBroadcastSmsConfig(Message response);
1328767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1329767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
1330767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Configure cell broadcast SMS.
1331767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1332767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * @param response
1333767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *            Callback message is empty on completion
1334767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
1335767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void setCellBroadcastSmsConfig(int[] configValuesArray, Message response);
1336767a662ecde33c3979bf02b793d392aca0403162Wink Saville
1337767a662ecde33c3979bf02b793d392aca0403162Wink Saville    public void notifyDataActivity();
13389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
1339