ITelephony.aidl revision ddb74d8eb05bf50ebae673fda87730b80e52a758
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;
20f1e1e7714375b3b83f2cc3956b112293face56a1Gabriel Pealimport java.util.List;
21fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Savilleimport android.telephony.NeighboringCellInfo;
22fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Savilleimport android.telephony.CellInfo;
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
24aae9216320328e6b865725219a31a029ea46c1b0Sailesh Nepal
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
26767a662ecde33c3979bf02b793d392aca0403162Wink Saville * Interface used to interact with the phone.  Mostly this is used by the
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * TelephonyManager class.  A few places are still using this directly.
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Please clean them up if possible and use TelephonyManager insteadl.
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@hide}
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinterface ITelephony {
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Dial a number. This doesn't place the call. It displays
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the Dialer screen.
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param number the number to be dialed. If null, this
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * would display the Dialer screen with no number pre-filled.
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void dial(String number);
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Place a call to the specified number.
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param number the number to be called.
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
46f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn    void call(String callingPackage, String number);
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
494d396052deb54399cbadbeb8abd873df6f3af342Jeff Brown     * End call if there is a call in progress, otherwise does nothing.
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return whether it hung up
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean endCall();
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
56fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * End call on particular subId or go to the Home screen
57fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
58fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return whether it hung up
59fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
60fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    boolean endCallUsingSubId(long subId);
61fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
62fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Answer the currently-ringing call.
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If there's already a current active call, that call will be
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * automatically put on hold.  If both lines are currently in use, the
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * current active call will be ended.
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * TODO: provide a flag to let the caller specify what policy to use
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * if both lines are in use.  (The current behavior is hardwired to
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * "answer incoming, end ongoing", which is how the CALL button
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * is specced to behave.)
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * TODO: this should be a oneway call (especially since it's called
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * directly from the key queue thread).
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void answerRingingCall();
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Silence the ringer if an incoming call is currently ringing.
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (If vibrating, stop the vibrator also.)
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * It's safe to call this if the ringer has already been silenced, or
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * even if there's no incoming call.  (If so, this method will do nothing.)
859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * TODO: this should be a oneway call too (see above).
879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *       (Actually *all* the methods here that return void can
889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *       probably be oneway.)
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void silenceRinger();
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check if we are in either an active or holding call
949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the phone state is OFFHOOK.
959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isOffhook();
979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
99fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Check if a particular subId has an active or holding call
100fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *
101fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
102fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return true if the phone state is OFFHOOK.
103fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
104fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    boolean isOffhookUsingSubId(long subId);
105fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
106fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
107fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Check if an incoming phone call is ringing or call waiting
108fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * on a particular subId.
109fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *
110fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
111fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return true if the phone state is RINGING.
112fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
113fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    boolean isRingingUsingSubId(long subId);
114fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
115fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check if an incoming phone call is ringing or call waiting.
1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the phone state is RINGING.
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isRinging();
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check if the phone is idle.
1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the phone state is IDLE.
1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isIdle();
1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
128fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Check if the phone is idle on a particular subId.
129fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *
130fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
131fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return true if the phone state is IDLE.
132fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
133fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    boolean isIdleUsingSubId(long subId);
134fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
135fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check to see if the radio is on or not.
1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return returns true if the radio is on.
1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isRadioOn();
1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
142fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Check to see if the radio is on or not on particular subId.
143fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
144fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return returns true if the radio is on.
145fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
146fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    boolean isRadioOnUsingSubId(long subId);
147fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
148fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check if the SIM pin lock is enabled.
1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the SIM pin lock is enabled.
1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isSimPinEnabled();
1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Cancels the missed calls notification.
1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
157767a662ecde33c3979bf02b793d392aca0403162Wink Saville    void cancelMissedCallsNotification();
1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Supply a pin to unlock the SIM.  Blocks until a result is determined.
1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param pin The pin to check.
1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return whether the operation was a success.
1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean supplyPin(String pin);
1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
167fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Supply a pin to unlock the SIM for particular subId.
168fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Blocks until a result is determined.
169fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param pin The pin to check.
170fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
171fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return whether the operation was a success.
172fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
173fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    boolean supplyPinUsingSubId(long subId, String pin);
174fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
175fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
17698c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     * Supply puk to unlock the SIM and set SIM pin to new pin.
17798c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     *  Blocks until a result is determined.
17898c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     * @param puk The puk to check.
17998c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     *        pin The new pin to be set in SIM
18098c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     * @return whether the operation was a success.
18198c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     */
18298c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang    boolean supplyPuk(String puk, String pin);
18398c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang
18498c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang    /**
185fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Supply puk to unlock the SIM and set SIM pin to new pin.
186fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *  Blocks until a result is determined.
187fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param puk The puk to check.
188fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *        pin The new pin to be set in SIM
189fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
190fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return whether the operation was a success.
191fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
192fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    boolean supplyPukUsingSubId(long subId, String puk, String pin);
193fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
194fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
195b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Supply a pin to unlock the SIM.  Blocks until a result is determined.
196b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Returns a specific success/error code.
197b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * @param pin The pin to check.
198b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code
199b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     *         retValue[1] = number of attempts remaining if known otherwise -1
200b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     */
201b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville    int[] supplyPinReportResult(String pin);
202b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville
203b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville    /**
204fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Supply a pin to unlock the SIM.  Blocks until a result is determined.
205fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns a specific success/error code.
206fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param pin The pin to check.
207fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code
208fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *         retValue[1] = number of attempts remaining if known otherwise -1
209fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
210fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int[] supplyPinReportResultUsingSubId(long subId, String pin);
211fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
212fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
213b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Supply puk to unlock the SIM and set SIM pin to new pin.
214b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Blocks until a result is determined.
215b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Returns a specific success/error code
216b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * @param puk The puk to check
217b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     *        pin The pin to check.
218b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code
219b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     *         retValue[1] = number of attempts remaining if known otherwise -1
220b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     */
221b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville    int[] supplyPukReportResult(String puk, String pin);
222b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville
223b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville    /**
224fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Supply puk to unlock the SIM and set SIM pin to new pin.
225fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Blocks until a result is determined.
226fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns a specific success/error code
227fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param puk The puk to check
228fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *        pin The pin to check.
229fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code
230fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *         retValue[1] = number of attempts remaining if known otherwise -1
231fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
232fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int[] supplyPukReportResultUsingSubId(long subId, String puk, String pin);
233fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
234fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Handles PIN MMI commands (PIN/PIN2/PUK/PUK2), which are initiated
2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * without SEND (so <code>dial</code> is not appropriate).
237767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param dialString the MMI command to be executed.
2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if MMI command is executed.
2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean handlePinMmi(String dialString);
2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
244fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Handles PIN MMI commands (PIN/PIN2/PUK/PUK2), which are initiated
245fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * without SEND (so <code>dial</code> is not appropriate) for
246fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * a particular subId.
247fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param dialString the MMI command to be executed.
248fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
249fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return true if MMI command is executed.
250fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
251fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    boolean handlePinMmiUsingSubId(long subId, String dialString);
252fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
253fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Toggles the radio on or off.
2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void toggleRadioOnOff();
2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
259fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Toggles the radio on or off on particular subId.
260fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
261fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
262fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    void toggleRadioOnOffUsingSubId(long subId);
263fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
264fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Set the radio to on or off
2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean setRadio(boolean turnOn);
2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
270fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Set the radio to on or off on particular subId.
271fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
272fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
273fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    boolean setRadioUsingSubId(long subId, boolean turnOn);
274fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
275fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
27645ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville     * Set the radio to on or off unconditionally
27745ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville     */
27845ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville    boolean setRadioPower(boolean turnOn);
27945ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville
28045ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville    /**
2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Request to update location information in service state
2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void updateServiceLocation();
2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
286fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Request to update location information for a subscrition in service state
287fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
288fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
289fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    void updateServiceLocationUsingSubId(long subId);
290fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
291fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Enable location update notifications.
2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void enableLocationUpdates();
2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
297fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Enable location update notifications.
298fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
299fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
300fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    void enableLocationUpdatesUsingSubId(long subId);
301fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
302fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Disable location update notifications.
3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void disableLocationUpdates();
3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
308fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Disable location update notifications.
309fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
310fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
311fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    void disableLocationUpdatesUsingSubId(long subId);
312fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
313fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Allow mobile data connections.
3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean enableDataConnectivity();
3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Disallow mobile data connections.
3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean disableDataConnectivity();
3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Report whether data connectivity is possible.
3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isDataConnectivityPossible();
3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Bundle getCellLocation();
3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the neighboring cell information of the device.
3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
333f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn    List<NeighboringCellInfo> getNeighboringCellInfo(String callingPkg);
3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     int getCallState();
336fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
337fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
338fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the call state for a subId.
339fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
340fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     int getCallStateUsingSubId(long subId);
341fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     int getDataActivity();
3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     int getDataState();
344767a662ecde33c3979bf02b793d392aca0403162Wink Saville
345767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
346767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Returns the current active phone type as integer.
347767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Returns TelephonyManager.PHONE_TYPE_CDMA if RILConstants.CDMA_PHONE
348767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * and TelephonyManager.PHONE_TYPE_GSM if RILConstants.GSM_PHONE
349767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
350767a662ecde33c3979bf02b793d392aca0403162Wink Saville    int getActivePhoneType();
351767a662ecde33c3979bf02b793d392aca0403162Wink Saville
352e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
353fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the current active phone type as integer for particular subId.
354fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns TelephonyManager.PHONE_TYPE_CDMA if RILConstants.CDMA_PHONE
355fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * and TelephonyManager.PHONE_TYPE_GSM if RILConstants.GSM_PHONE
356fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
357fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
358fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int getActivePhoneTypeUsingSubId(long subId);
359fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
360fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
361e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Returns the CDMA ERI icon index to display
362e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
363e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    int getCdmaEriIconIndex();
364e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
365e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
366fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the CDMA ERI icon index to display on particular subId.
367fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
368fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
369fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int getCdmaEriIconIndexUsingSubId(long subId);
370fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
371fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
372e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Returns the CDMA ERI icon mode,
373e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * 0 - ON
374e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * 1 - FLASHING
375e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
376e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    int getCdmaEriIconMode();
377e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
378e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
379fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the CDMA ERI icon mode on particular subId,
380fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * 0 - ON
381fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * 1 - FLASHING
382fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
383fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
384fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int getCdmaEriIconModeUsingSubId(long subId);
385fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
386fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
387e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Returns the CDMA ERI text,
388e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
389e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    String getCdmaEriText();
390e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
391dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
392fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the CDMA ERI text for particular subId,
393fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
394fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
395fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    String getCdmaEriTextUsingSubId(long subId);
396fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
397fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
3984d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville     * Returns true if OTA service provisioning needs to run.
3994d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville     * Only relevant on some technologies, others will always
4004d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville     * return false.
401767be5f0b929cc1eeb8a7d5aa7a02e228053e9bbJim Miller     */
4024d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville    boolean needsOtaServiceProvisioning();
403767be5f0b929cc1eeb8a7d5aa7a02e228053e9bbJim Miller
404767be5f0b929cc1eeb8a7d5aa7a02e228053e9bbJim Miller    /**
405dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville      * Returns the unread count of voicemails
406dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville      */
407ce099c3226b33b43e0dd5d1f24347b14a2223ee1David Krause    int getVoiceMessageCount();
408dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
409ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe    /**
410fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the unread count of voicemails for a subId.
411fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
412fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the unread count of voicemails
413fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
414fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int getVoiceMessageCountUsingSubId(long subId);
415fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
416fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
4170dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville      * Returns the network type for data transmission
418ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe      */
419ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe    int getNetworkType();
42098c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang
421e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville    /**
422fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the network type of a subId.
423fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
424fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the network type
425fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
426fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int getNetworkTypeUsingSubId(long subId);
427fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
428fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
4290dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville      * Returns the network type for data transmission
4300dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville      */
4310dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville    int getDataNetworkType();
4320dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville
4330dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville    /**
434fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      * Returns the data network type of a subId
435fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      * @param subId user preferred subId.
436fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      * Returns the network type
437fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      */
438fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int getDataNetworkTypeUsingSubId(long subId);
439fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
440fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
4410dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville      * Returns the network type for voice
4420dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville      */
4430dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville    int getVoiceNetworkType();
4440dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville
4450dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville    /**
446fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      * Returns the voice network type of a subId
447fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      * @param subId user preferred subId.
448fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      * Returns the network type
449fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      */
450fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int getVoiceNetworkTypeUsingSubId(long subId);
451fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
452fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
453e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville     * Return true if an ICC card is present
454e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville     */
455e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville    boolean hasIccCard();
4565e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville
4575e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville    /**
458fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Return true if an ICC card is present for a subId.
459fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param slotId user preferred slotId.
460fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Return true if an ICC card is present
461fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
462fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    boolean hasIccCardUsingSlotId(long slotId);
463fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
464fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
4655e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * Return if the current radio is LTE on CDMA. This
4665e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * is a tri-state return value as for a period of time
4675e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * the mode may be unknown.
4685e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     *
4695e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * @return {@link Phone#LTE_ON_CDMA_UNKNOWN}, {@link Phone#LTE_ON_CDMA_FALSE}
4705e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * or {@link PHone#LTE_ON_CDMA_TRUE}
4715e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     */
4725e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville    int getLteOnCdmaMode();
473963db55d59a170f4b17ff907c96615a19ef6fe17John Wang
474963db55d59a170f4b17ff907c96615a19ef6fe17John Wang    /**
475fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Return if the current radio is LTE on CDMA. This
476fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * is a tri-state return value as for a period of time
477fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * the mode may be unknown.
478fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *
479fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return {@link Phone#LTE_ON_CDMA_UNKNOWN}, {@link Phone#LTE_ON_CDMA_FALSE}
480fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * or {@link PHone#LTE_ON_CDMA_TRUE}
481fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
482fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int getLteOnCdmaModeUsingSubId(long subId);
483fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
484fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
485963db55d59a170f4b17ff907c96615a19ef6fe17John Wang     * Returns the all observed cell information of the device.
486963db55d59a170f4b17ff907c96615a19ef6fe17John Wang     */
487963db55d59a170f4b17ff907c96615a19ef6fe17John Wang    List<CellInfo> getAllCellInfo();
488094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville
489094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville    /**
490094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville     * Sets minimum time in milli-seconds between onCellInfoChanged
491094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville     */
492094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville    void setCellInfoListRate(int rateInMillis);
493767a662ecde33c3979bf02b793d392aca0403162Wink Saville
49457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal    /**
495fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * get default sim
496fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return sim id
497fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
498fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int getDefaultSim();
499fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
500fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
50157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Opens a logical channel to the ICC card.
50257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
50357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Input parameters equivalent to TS 27.007 AT+CCHO command.
50457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
50557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param AID Application id. See ETSI 102.221 and 101.220.
50657f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @return The logical channel id which is set to -1 on error.
50757f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     */
50857f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal    int iccOpenLogicalChannel(String AID);
50957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal
51057f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal    /**
51157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Closes a previously opened logical channel to the ICC card.
51257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
51357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Input parameters equivalent to TS 27.007 AT+CCHC command.
51457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
51557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param channel is the channel id to be closed as retruned by a
51657f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *            successful iccOpenLogicalChannel.
51757f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @return true if the channel was closed successfully.
51857f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     */
51957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal    boolean iccCloseLogicalChannel(int channel);
52057f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal
52157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal    /**
52257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Transmit an APDU to the ICC card over a logical channel.
52357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
52457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Input parameters equivalent to TS 27.007 AT+CGLA command.
52557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
52657f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param channel is the channel id to be closed as retruned by a
52757f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *            successful iccOpenLogicalChannel.
52857f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param cla Class of the APDU command.
52957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param instruction Instruction of the APDU command.
53057f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param p1 P1 value of the APDU command.
53157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param p2 P2 value of the APDU command.
53257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param p3 P3 value of the APDU command. If p3 is negative a 4 byte APDU
53357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *            is sent to the SIM.
53457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param data Data to be sent with the APDU.
53557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @return The APDU response from the ICC card with the status appended at
53657f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *            the end. If an error occurs, an empty string is returned.
53757f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     */
538375890841df7aad36a042861f6a70f11e1f32766Shishir Agrawal    String iccTransmitApduLogicalChannel(int channel, int cla, int instruction,
53957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal            int p1, int p2, int p3, String data);
5408f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
5418f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    /**
542b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton     * Send ENVELOPE to the SIM and returns the response.
543210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton     *
544210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton     * @param contents  String containing SAT/USAT response in hexadecimal
545210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton     *                  format starting with command tag. See TS 102 223 for
546210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton     *                  details.
547b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton     * @return The APDU response from the ICC card, with the last 4 bytes
548b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton     *         being the status word. If the command fails, returns an empty
549b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton     *         string.
550210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton     */
551b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton    String sendEnvelopeWithStatus(String content);
552210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton
553210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton    /**
5548f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Read one of the NV items defined in {@link RadioNVItems} / {@code ril_nv_items.h}.
5558f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Used for device configuration by some CDMA operators.
5568f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     *
5578f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param itemID the ID of the item to read.
5588f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @return the NV item as a String, or null on any failure.
5598f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     */
5608f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    String nvReadItem(int itemID);
5618f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
5628f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    /**
5638f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Write one of the NV items defined in {@link RadioNVItems} / {@code ril_nv_items.h}.
5648f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Used for device configuration by some CDMA operators.
5658f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     *
5668f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param itemID the ID of the item to read.
5678f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param itemValue the value to write, as a String.
5688f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @return true on success; false on any failure.
5698f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     */
5708f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    boolean nvWriteItem(int itemID, String itemValue);
5718f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
5728f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    /**
5738f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Update the CDMA Preferred Roaming List (PRL) in the radio NV storage.
5748f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Used for device configuration by some CDMA operators.
5758f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     *
5768f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param preferredRoamingList byte array containing the new PRL.
5778f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @return true on success; false on any failure.
5788f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     */
5798f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    boolean nvWriteCdmaPrl(in byte[] preferredRoamingList);
5808f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
5818f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    /**
582786e71ab11f2d89afffc9db7473f16206395c813Jake Hamby     * Perform the specified type of NV config reset. The radio will be taken offline
583786e71ab11f2d89afffc9db7473f16206395c813Jake Hamby     * and the device must be rebooted after the operation. Used for device
584786e71ab11f2d89afffc9db7473f16206395c813Jake Hamby     * configuration by some CDMA operators.
5858f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     *
5868f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param resetType the type of reset to perform (1 == factory reset; 2 == NV-only reset).
5878f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @return true on success; false on any failure.
5888f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     */
5898f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    boolean nvResetConfig(int resetType);
5908f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
5919bbb37116d2c5b597f9b5e3094ff328971e03c0bEvan Charlton    /*
5924a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * Get the preferred network type.
5934a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * Used for device configuration by some CDMA operators.
5944a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     *
5954a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * @return the preferred network type, defined in RILConstants.java.
5964a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     */
5974a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby    int getPreferredNetworkType();
5984a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby
5994a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby    /**
6004a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * Set the preferred network type.
6014a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * Used for device configuration by some CDMA operators.
6024a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     *
6034a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * @param networkType the preferred network type, defined in RILConstants.java.
6044a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * @return true on success; false on any failure.
6054a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     */
6064a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby    boolean setPreferredNetworkType(int networkType);
607afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt
608afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt    /**
609ddb74d8eb05bf50ebae673fda87730b80e52a758Junda Liu     * Set the CDMA subscription source.
610ddb74d8eb05bf50ebae673fda87730b80e52a758Junda Liu     * Used for device supporting both NV and RUIM for CDMA.
611ddb74d8eb05bf50ebae673fda87730b80e52a758Junda Liu     *
612ddb74d8eb05bf50ebae673fda87730b80e52a758Junda Liu     * @param subscriptionType the subscription type, 0 for RUIM, 1 for NV.
613ddb74d8eb05bf50ebae673fda87730b80e52a758Junda Liu     * @return true on success; false on any failure.
614ddb74d8eb05bf50ebae673fda87730b80e52a758Junda Liu     */
615ddb74d8eb05bf50ebae673fda87730b80e52a758Junda Liu    boolean setCdmaSubscription(int subscriptionType);
616ddb74d8eb05bf50ebae673fda87730b80e52a758Junda Liu
617ddb74d8eb05bf50ebae673fda87730b80e52a758Junda Liu    /**
618afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     * User enable/disable Mobile Data.
619afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     *
620afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     * @param enable true to turn on, else false
621afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     */
622afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt    void setDataEnabled(boolean enable);
623afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt
624afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt    /**
625afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     * Get the user enabled state of Mobile Data.
626afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     *
627afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     * @return true on enabled
628afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     */
629afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt    boolean getDataEnabled();
630fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
631fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
632fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Get P-CSCF address from PCO after data connection is established or modified.
633fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
634fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    String[] getPcscfAddress();
635fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
636fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
637fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Set IMS registration state
638fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
639fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    void setImsRegistrationState(boolean registered);
640fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
64157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal}
642fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
643