ITelephony.aidl revision aae9216320328e6b865725219a31a029ea46c1b0
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.os.Bundle;
20aae9216320328e6b865725219a31a029ea46c1b0Sailesh Nepalimport android.content.ComponentName;
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.telephony.NeighboringCellInfo;
22963db55d59a170f4b17ff907c96615a19ef6fe17John Wangimport android.telephony.CellInfo;
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
24aae9216320328e6b865725219a31a029ea46c1b0Sailesh Nepalimport java.util.List;
25aae9216320328e6b865725219a31a029ea46c1b0Sailesh Nepal
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
27767a662ecde33c3979bf02b793d392aca0403162Wink Saville * Interface used to interact with the phone.  Mostly this is used by the
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * TelephonyManager class.  A few places are still using this directly.
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Please clean them up if possible and use TelephonyManager insteadl.
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@hide}
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinterface ITelephony {
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Dial a number. This doesn't place the call. It displays
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the Dialer screen.
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param number the number to be dialed. If null, this
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * would display the Dialer screen with no number pre-filled.
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void dial(String number);
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Place a call to the specified number.
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param number the number to be called.
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
47f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn    void call(String callingPackage, String number);
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If there is currently a call in progress, show the call screen.
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The DTMF dialpad may or may not be visible initially, depending on
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * whether it was up when the user last exited the InCallScreen.
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the call screen was shown.
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean showCallScreen();
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Variation of showCallScreen() that also specifies whether the
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * DTMF dialpad should be initially visible when the InCallScreen
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * comes up.
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param showDialpad if true, make the dialpad visible initially,
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *                    otherwise hide the dialpad initially.
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the call screen was shown.
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see showCallScreen
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean showCallScreenWithDialpad(boolean showDialpad);
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
724d396052deb54399cbadbeb8abd873df6f3af342Jeff Brown     * End call if there is a call in progress, otherwise does nothing.
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return whether it hung up
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean endCall();
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Answer the currently-ringing call.
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If there's already a current active call, that call will be
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * automatically put on hold.  If both lines are currently in use, the
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * current active call will be ended.
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * TODO: provide a flag to let the caller specify what policy to use
869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * if both lines are in use.  (The current behavior is hardwired to
879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * "answer incoming, end ongoing", which is how the CALL button
889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * is specced to behave.)
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * TODO: this should be a oneway call (especially since it's called
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * directly from the key queue thread).
929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void answerRingingCall();
949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Silence the ringer if an incoming call is currently ringing.
979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (If vibrating, stop the vibrator also.)
989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * It's safe to call this if the ringer has already been silenced, or
1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * even if there's no incoming call.  (If so, this method will do nothing.)
1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * TODO: this should be a oneway call too (see above).
1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *       (Actually *all* the methods here that return void can
1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *       probably be oneway.)
1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void silenceRinger();
1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check if we are in either an active or holding call
1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the phone state is OFFHOOK.
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isOffhook();
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check if an incoming phone call is ringing or call waiting.
1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the phone state is RINGING.
1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isRinging();
1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check if the phone is idle.
1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the phone state is IDLE.
1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isIdle();
1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check to see if the radio is on or not.
1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return returns true if the radio is on.
1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isRadioOn();
1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check if the SIM pin lock is enabled.
1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the SIM pin lock is enabled.
1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isSimPinEnabled();
1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Cancels the missed calls notification.
1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
141767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void cancelMissedCallsNotification();
1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Supply a pin to unlock the SIM.  Blocks until a result is determined.
1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param pin The pin to check.
1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return whether the operation was a success.
1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean supplyPin(String pin);
1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
15198c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     * Supply puk to unlock the SIM and set SIM pin to new pin.
15298c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     *  Blocks until a result is determined.
15398c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     * @param puk The puk to check.
15498c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     *        pin The new pin to be set in SIM
15598c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     * @return whether the operation was a success.
15698c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     */
15798c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang    boolean supplyPuk(String puk, String pin);
15898c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang
15998c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang    /**
160b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Supply a pin to unlock the SIM.  Blocks until a result is determined.
161b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Returns a specific success/error code.
162b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * @param pin The pin to check.
163b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code
164b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     *         retValue[1] = number of attempts remaining if known otherwise -1
165b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     */
166b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville    int[] supplyPinReportResult(String pin);
167b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville
168b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville    /**
169b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Supply puk to unlock the SIM and set SIM pin to new pin.
170b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Blocks until a result is determined.
171b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Returns a specific success/error code
172b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * @param puk The puk to check
173b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     *        pin The pin to check.
174b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code
175b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     *         retValue[1] = number of attempts remaining if known otherwise -1
176b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     */
177b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville    int[] supplyPukReportResult(String puk, String pin);
178b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville
179b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville    /**
1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Handles PIN MMI commands (PIN/PIN2/PUK/PUK2), which are initiated
1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * without SEND (so <code>dial</code> is not appropriate).
182767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param dialString the MMI command to be executed.
1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if MMI command is executed.
1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean handlePinMmi(String dialString);
1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Toggles the radio on or off.
1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void toggleRadioOnOff();
1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Set the radio to on or off
1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean setRadio(boolean turnOn);
1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
19945ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville     * Set the radio to on or off unconditionally
20045ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville     */
20145ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville    boolean setRadioPower(boolean turnOn);
20245ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville
20345ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville    /**
2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Request to update location information in service state
2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void updateServiceLocation();
2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Enable location update notifications.
2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void enableLocationUpdates();
2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Disable location update notifications.
2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void disableLocationUpdates();
2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Enable a specific APN type.
2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int enableApnType(String type);
2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Disable a specific APN type.
2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int disableApnType(String type);
2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Allow mobile data connections.
2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean enableDataConnectivity();
2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Disallow mobile data connections.
2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean disableDataConnectivity();
2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Report whether data connectivity is possible.
2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isDataConnectivityPossible();
2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Bundle getCellLocation();
2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the neighboring cell information of the device.
2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
248f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn    List<NeighboringCellInfo> getNeighboringCellInfo(String callingPkg);
2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     int getCallState();
2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     int getDataActivity();
2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     int getDataState();
253767a662ecde33c3979bf02b793d392aca0403162Wink Saville
254767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
255767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Returns the current active phone type as integer.
256767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Returns TelephonyManager.PHONE_TYPE_CDMA if RILConstants.CDMA_PHONE
257767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * and TelephonyManager.PHONE_TYPE_GSM if RILConstants.GSM_PHONE
258767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
259767a662ecde33c3979bf02b793d392aca0403162Wink Saville    int getActivePhoneType();
260767a662ecde33c3979bf02b793d392aca0403162Wink Saville
261e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
262e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Returns the CDMA ERI icon index to display
263e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
264e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    int getCdmaEriIconIndex();
265e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
266e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
267e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Returns the CDMA ERI icon mode,
268e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * 0 - ON
269e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * 1 - FLASHING
270e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
271e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    int getCdmaEriIconMode();
272e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
273e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
274e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Returns the CDMA ERI text,
275e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
276e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    String getCdmaEriText();
277e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
278dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
2794d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville     * Returns true if OTA service provisioning needs to run.
2804d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville     * Only relevant on some technologies, others will always
2814d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville     * return false.
282767be5f0b929cc1eeb8a7d5aa7a02e228053e9bbJim Miller     */
2834d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville    boolean needsOtaServiceProvisioning();
284767be5f0b929cc1eeb8a7d5aa7a02e228053e9bbJim Miller
285767be5f0b929cc1eeb8a7d5aa7a02e228053e9bbJim Miller    /**
286dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville      * Returns the unread count of voicemails
287dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville      */
288ce099c3226b33b43e0dd5d1f24347b14a2223ee1David Krause    int getVoiceMessageCount();
289dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
290ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe    /**
2910dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville      * Returns the network type for data transmission
292ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe      */
293ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe    int getNetworkType();
29498c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang
295e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville    /**
2960dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville      * Returns the network type for data transmission
2970dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville      */
2980dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville    int getDataNetworkType();
2990dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville
3000dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville    /**
3010dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville      * Returns the network type for voice
3020dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville      */
3030dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville    int getVoiceNetworkType();
3040dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville
3050dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville    /**
306e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville     * Return true if an ICC card is present
307e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville     */
308e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville    boolean hasIccCard();
3095e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville
3105e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville    /**
3115e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * Return if the current radio is LTE on CDMA. This
3125e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * is a tri-state return value as for a period of time
3135e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * the mode may be unknown.
3145e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     *
3155e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * @return {@link Phone#LTE_ON_CDMA_UNKNOWN}, {@link Phone#LTE_ON_CDMA_FALSE}
3165e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * or {@link PHone#LTE_ON_CDMA_TRUE}
3175e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     */
3185e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville    int getLteOnCdmaMode();
319963db55d59a170f4b17ff907c96615a19ef6fe17John Wang
320963db55d59a170f4b17ff907c96615a19ef6fe17John Wang    /**
321963db55d59a170f4b17ff907c96615a19ef6fe17John Wang     * Returns the all observed cell information of the device.
322963db55d59a170f4b17ff907c96615a19ef6fe17John Wang     */
323963db55d59a170f4b17ff907c96615a19ef6fe17John Wang    List<CellInfo> getAllCellInfo();
324094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville
325094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville    /**
326094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville     * Sets minimum time in milli-seconds between onCellInfoChanged
327094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville     */
328094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville    void setCellInfoListRate(int rateInMillis);
329767a662ecde33c3979bf02b793d392aca0403162Wink Saville
33057f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal    /**
33157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Opens a logical channel to the ICC card.
33257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
33357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Input parameters equivalent to TS 27.007 AT+CCHO command.
33457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
33557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param AID Application id. See ETSI 102.221 and 101.220.
33657f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @return The logical channel id which is set to -1 on error.
33757f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     */
33857f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal    int iccOpenLogicalChannel(String AID);
33957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal
34057f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal    /**
34157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Closes a previously opened logical channel to the ICC card.
34257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
34357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Input parameters equivalent to TS 27.007 AT+CCHC command.
34457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
34557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param channel is the channel id to be closed as retruned by a
34657f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *            successful iccOpenLogicalChannel.
34757f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @return true if the channel was closed successfully.
34857f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     */
34957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal    boolean iccCloseLogicalChannel(int channel);
35057f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal
35157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal    /**
35257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Transmit an APDU to the ICC card over a logical channel.
35357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
35457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Input parameters equivalent to TS 27.007 AT+CGLA command.
35557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
35657f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param channel is the channel id to be closed as retruned by a
35757f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *            successful iccOpenLogicalChannel.
35857f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param cla Class of the APDU command.
35957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param instruction Instruction of the APDU command.
36057f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param p1 P1 value of the APDU command.
36157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param p2 P2 value of the APDU command.
36257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param p3 P3 value of the APDU command. If p3 is negative a 4 byte APDU
36357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *            is sent to the SIM.
36457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param data Data to be sent with the APDU.
36557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @return The APDU response from the ICC card with the status appended at
36657f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *            the end. If an error occurs, an empty string is returned.
36757f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     */
368375890841df7aad36a042861f6a70f11e1f32766Shishir Agrawal    String iccTransmitApduLogicalChannel(int channel, int cla, int instruction,
36957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal            int p1, int p2, int p3, String data);
3708f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
3718f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    /**
3728f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Read one of the NV items defined in {@link RadioNVItems} / {@code ril_nv_items.h}.
3738f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Used for device configuration by some CDMA operators.
3748f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     *
3758f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param itemID the ID of the item to read.
3768f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @return the NV item as a String, or null on any failure.
3778f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     */
3788f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    String nvReadItem(int itemID);
3798f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
3808f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    /**
3818f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Write one of the NV items defined in {@link RadioNVItems} / {@code ril_nv_items.h}.
3828f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Used for device configuration by some CDMA operators.
3838f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     *
3848f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param itemID the ID of the item to read.
3858f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param itemValue the value to write, as a String.
3868f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @return true on success; false on any failure.
3878f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     */
3888f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    boolean nvWriteItem(int itemID, String itemValue);
3898f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
3908f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    /**
3918f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Update the CDMA Preferred Roaming List (PRL) in the radio NV storage.
3928f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Used for device configuration by some CDMA operators.
3938f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     *
3948f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param preferredRoamingList byte array containing the new PRL.
3958f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @return true on success; false on any failure.
3968f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     */
3978f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    boolean nvWriteCdmaPrl(in byte[] preferredRoamingList);
3988f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
3998f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    /**
4008f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Perform the specified type of NV config reset.
4018f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Used for device configuration by some CDMA operators.
4028f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     *
4038f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param resetType the type of reset to perform (1 == factory reset; 2 == NV-only reset).
4048f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @return true on success; false on any failure.
4058f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     */
4068f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    boolean nvResetConfig(int resetType);
4078f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
4088f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    /**
4098f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Change the radio to the specified mode.
4108f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Used for device configuration by some operators.
4118f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     *
4128f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param radioMode is 0 for offline mode, 1 for online mode, 2 for low-power mode,
4138f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     *                  or 3 to reset the radio.
4148f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @return true on success; false on any failure.
4158f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     */
4168f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    boolean setRadioMode(int radioMode);
417aae9216320328e6b865725219a31a029ea46c1b0Sailesh Nepal
418aae9216320328e6b865725219a31a029ea46c1b0Sailesh Nepal    /**
419aae9216320328e6b865725219a31a029ea46c1b0Sailesh Nepal     * Inform the phone about a new incoming third party call. The phone will bind to the service
420aae9216320328e6b865725219a31a029ea46c1b0Sailesh Nepal     * identified by component to handle the call.
421aae9216320328e6b865725219a31a029ea46c1b0Sailesh Nepal     * @param component the component that should handle the intent.
422aae9216320328e6b865725219a31a029ea46c1b0Sailesh Nepal     * @param callId the unique id of the call.
423aae9216320328e6b865725219a31a029ea46c1b0Sailesh Nepal     */
424aae9216320328e6b865725219a31a029ea46c1b0Sailesh Nepal    void newIncomingThirdPartyCall(in ComponentName component, String callId);
42557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal}
426