ITelephony.aidl revision 2b2469b07d6ea9410bdb8d1234aa2320b02bdaa9
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
1963c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawalimport android.content.Intent;
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Bundle;
21fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Savilleimport android.telephony.CellInfo;
22a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawalimport android.telephony.IccOpenLogicalChannelResponse;
23a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawalimport android.telephony.NeighboringCellInfo;
24a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawalimport java.util.List;
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26aae9216320328e6b865725219a31a029ea46c1b0Sailesh Nepal
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
28767a662ecde33c3979bf02b793d392aca0403162Wink Saville * Interface used to interact with the phone.  Mostly this is used by the
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * TelephonyManager class.  A few places are still using this directly.
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Please clean them up if possible and use TelephonyManager insteadl.
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@hide}
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinterface ITelephony {
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Dial a number. This doesn't place the call. It displays
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the Dialer screen.
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param number the number to be dialed. If null, this
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * would display the Dialer screen with no number pre-filled.
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void dial(String number);
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Place a call to the specified number.
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param number the number to be called.
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
48f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn    void call(String callingPackage, String number);
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
514d396052deb54399cbadbeb8abd873df6f3af342Jeff Brown     * End call if there is a call in progress, otherwise does nothing.
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return whether it hung up
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean endCall();
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
58fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * End call on particular subId or go to the Home screen
59fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
60fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return whether it hung up
61fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
62fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    boolean endCallUsingSubId(long subId);
63fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
64fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Answer the currently-ringing call.
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If there's already a current active call, that call will be
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * automatically put on hold.  If both lines are currently in use, the
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * current active call will be ended.
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * TODO: provide a flag to let the caller specify what policy to use
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * if both lines are in use.  (The current behavior is hardwired to
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * "answer incoming, end ongoing", which is how the CALL button
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * is specced to behave.)
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * TODO: this should be a oneway call (especially since it's called
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * directly from the key queue thread).
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void answerRingingCall();
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Silence the ringer if an incoming call is currently ringing.
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (If vibrating, stop the vibrator also.)
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * It's safe to call this if the ringer has already been silenced, or
869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * even if there's no incoming call.  (If so, this method will do nothing.)
879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * TODO: this should be a oneway call too (see above).
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *       (Actually *all* the methods here that return void can
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *       probably be oneway.)
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void silenceRinger();
939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check if we are in either an active or holding call
969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the phone state is OFFHOOK.
979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isOffhook();
999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
101fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Check if a particular subId has an active or holding call
102fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *
103fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
104fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return true if the phone state is OFFHOOK.
105fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
106fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    boolean isOffhookUsingSubId(long subId);
107fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
108fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
109fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Check if an incoming phone call is ringing or call waiting
110fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * on a particular subId.
111fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *
112fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
113fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return true if the phone state is RINGING.
114fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
115fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    boolean isRingingUsingSubId(long subId);
116fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
117fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check if an incoming phone call is ringing or call waiting.
1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the phone state is RINGING.
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isRinging();
1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check if the phone is idle.
1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the phone state is IDLE.
1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isIdle();
1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
130fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Check if the phone is idle on a particular subId.
131fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *
132fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
133fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return true if the phone state is IDLE.
134fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
135fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    boolean isIdleUsingSubId(long subId);
136fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
137fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check to see if the radio is on or not.
1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return returns true if the radio is on.
1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isRadioOn();
1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
144fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Check to see if the radio is on or not on particular subId.
145fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
146fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return returns true if the radio is on.
147fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
148fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    boolean isRadioOnUsingSubId(long subId);
149fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
150fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check if the SIM pin lock is enabled.
1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the SIM pin lock is enabled.
1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isSimPinEnabled();
1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Supply a pin to unlock the SIM.  Blocks until a result is determined.
1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param pin The pin to check.
1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return whether the operation was a success.
1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean supplyPin(String pin);
1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
164fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Supply a pin to unlock the SIM for particular subId.
165fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Blocks until a result is determined.
166fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param pin The pin to check.
167fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
168fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return whether the operation was a success.
169fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
170fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    boolean supplyPinUsingSubId(long subId, String pin);
171fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
172fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
17398c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     * Supply puk to unlock the SIM and set SIM pin to new pin.
17498c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     *  Blocks until a result is determined.
17598c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     * @param puk The puk to check.
17698c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     *        pin The new pin to be set in SIM
17798c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     * @return whether the operation was a success.
17898c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     */
17998c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang    boolean supplyPuk(String puk, String pin);
18098c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang
18198c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang    /**
182fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Supply puk to unlock the SIM and set SIM pin to new pin.
183fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *  Blocks until a result is determined.
184fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param puk The puk to check.
185fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *        pin The new pin to be set in SIM
186fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
187fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return whether the operation was a success.
188fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
189fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    boolean supplyPukUsingSubId(long subId, String puk, String pin);
190fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
191fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
192b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Supply a pin to unlock the SIM.  Blocks until a result is determined.
193b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Returns a specific success/error code.
194b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * @param pin The pin to check.
195b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code
196b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     *         retValue[1] = number of attempts remaining if known otherwise -1
197b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     */
198b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville    int[] supplyPinReportResult(String pin);
199b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville
200b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville    /**
201fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Supply a pin to unlock the SIM.  Blocks until a result is determined.
202fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns a specific success/error code.
203fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param pin The pin to check.
204fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code
205fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *         retValue[1] = number of attempts remaining if known otherwise -1
206fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
207fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int[] supplyPinReportResultUsingSubId(long subId, String pin);
208fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
209fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
210b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Supply puk to unlock the SIM and set SIM pin to new pin.
211b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Blocks until a result is determined.
212b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Returns a specific success/error code
213b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * @param puk The puk to check
214b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     *        pin The pin to check.
215b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code
216b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     *         retValue[1] = number of attempts remaining if known otherwise -1
217b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     */
218b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville    int[] supplyPukReportResult(String puk, String pin);
219b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville
220b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville    /**
221fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Supply puk to unlock the SIM and set SIM pin to new pin.
222fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Blocks until a result is determined.
223fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns a specific success/error code
224fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param puk The puk to check
225fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *        pin The pin to check.
226fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code
227fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *         retValue[1] = number of attempts remaining if known otherwise -1
228fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
229fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int[] supplyPukReportResultUsingSubId(long subId, String puk, String pin);
230fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
231fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Handles PIN MMI commands (PIN/PIN2/PUK/PUK2), which are initiated
2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * without SEND (so <code>dial</code> is not appropriate).
234767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param dialString the MMI command to be executed.
2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if MMI command is executed.
2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean handlePinMmi(String dialString);
2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
241fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Handles PIN MMI commands (PIN/PIN2/PUK/PUK2), which are initiated
242fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * without SEND (so <code>dial</code> is not appropriate) for
243fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * a particular subId.
244fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param dialString the MMI command to be executed.
245fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
246fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return true if MMI command is executed.
247fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
248fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    boolean handlePinMmiUsingSubId(long subId, String dialString);
249fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
250fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Toggles the radio on or off.
2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void toggleRadioOnOff();
2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
256fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Toggles the radio on or off on particular subId.
257fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
258fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
259fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    void toggleRadioOnOffUsingSubId(long subId);
260fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
261fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Set the radio to on or off
2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean setRadio(boolean turnOn);
2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
267fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Set the radio to on or off on particular subId.
268fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
269fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
270fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    boolean setRadioUsingSubId(long subId, boolean turnOn);
271fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
272fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
27345ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville     * Set the radio to on or off unconditionally
27445ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville     */
27545ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville    boolean setRadioPower(boolean turnOn);
27645ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville
27745ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville    /**
2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Request to update location information in service state
2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void updateServiceLocation();
2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
283fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Request to update location information for a subscrition in service state
284fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
285fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
286fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    void updateServiceLocationUsingSubId(long subId);
287fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
288fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Enable location update notifications.
2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void enableLocationUpdates();
2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
294fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Enable location update notifications.
295fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
296fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
297fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    void enableLocationUpdatesUsingSubId(long subId);
298fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
299fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Disable location update notifications.
3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void disableLocationUpdates();
3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
305fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Disable location update notifications.
306fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
307fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
308fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    void disableLocationUpdatesUsingSubId(long subId);
309fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
310fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Allow mobile data connections.
3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean enableDataConnectivity();
3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Disallow mobile data connections.
3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean disableDataConnectivity();
3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Report whether data connectivity is possible.
3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isDataConnectivityPossible();
3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Bundle getCellLocation();
3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the neighboring cell information of the device.
3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
330f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn    List<NeighboringCellInfo> getNeighboringCellInfo(String callingPkg);
3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     int getCallState();
333fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
334fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
335fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the call state for a subId.
336fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
337fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     int getCallStateUsingSubId(long subId);
338fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     int getDataActivity();
3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     int getDataState();
341767a662ecde33c3979bf02b793d392aca0403162Wink Saville
342767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
343767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Returns the current active phone type as integer.
344767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Returns TelephonyManager.PHONE_TYPE_CDMA if RILConstants.CDMA_PHONE
345767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * and TelephonyManager.PHONE_TYPE_GSM if RILConstants.GSM_PHONE
346767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
347767a662ecde33c3979bf02b793d392aca0403162Wink Saville    int getActivePhoneType();
348767a662ecde33c3979bf02b793d392aca0403162Wink Saville
349e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
350fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the current active phone type as integer for particular subId.
351fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns TelephonyManager.PHONE_TYPE_CDMA if RILConstants.CDMA_PHONE
352fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * and TelephonyManager.PHONE_TYPE_GSM if RILConstants.GSM_PHONE
353fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
354fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
355fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int getActivePhoneTypeUsingSubId(long subId);
356fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
357fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
358e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Returns the CDMA ERI icon index to display
359e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
360e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    int getCdmaEriIconIndex();
361e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
362e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
363fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the CDMA ERI icon index to display on particular subId.
364fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
365fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
366fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int getCdmaEriIconIndexUsingSubId(long subId);
367fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
368fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
369e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Returns the CDMA ERI icon mode,
370e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * 0 - ON
371e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * 1 - FLASHING
372e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
373e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    int getCdmaEriIconMode();
374e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
375e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
376fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the CDMA ERI icon mode on particular subId,
377fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * 0 - ON
378fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * 1 - FLASHING
379fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
380fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
381fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int getCdmaEriIconModeUsingSubId(long subId);
382fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
383fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
384e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Returns the CDMA ERI text,
385e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
386e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    String getCdmaEriText();
387e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
388dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
389fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the CDMA ERI text for particular subId,
390fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
391fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
392fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    String getCdmaEriTextUsingSubId(long subId);
393fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
394fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
3954d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville     * Returns true if OTA service provisioning needs to run.
3964d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville     * Only relevant on some technologies, others will always
3974d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville     * return false.
398767be5f0b929cc1eeb8a7d5aa7a02e228053e9bbJim Miller     */
3994d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville    boolean needsOtaServiceProvisioning();
400767be5f0b929cc1eeb8a7d5aa7a02e228053e9bbJim Miller
401767be5f0b929cc1eeb8a7d5aa7a02e228053e9bbJim Miller    /**
402dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville      * Returns the unread count of voicemails
403dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville      */
404ce099c3226b33b43e0dd5d1f24347b14a2223ee1David Krause    int getVoiceMessageCount();
405dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
406ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe    /**
407fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the unread count of voicemails for a subId.
408fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
409fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the unread count of voicemails
410fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
411fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int getVoiceMessageCountUsingSubId(long subId);
412fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
413fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
4140dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville      * Returns the network type for data transmission
415ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe      */
416ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe    int getNetworkType();
41798c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang
418e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville    /**
419fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the network type of a subId.
420fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
421fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the network type
422fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
423fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int getNetworkTypeUsingSubId(long subId);
424fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
425fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
4260dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville      * Returns the network type for data transmission
4270dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville      */
4280dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville    int getDataNetworkType();
4290dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville
4300dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville    /**
431fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      * Returns the data network type of a subId
432fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      * @param subId user preferred subId.
433fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      * Returns the network type
434fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      */
435fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int getDataNetworkTypeUsingSubId(long subId);
436fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
437fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
4380dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville      * Returns the network type for voice
4390dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville      */
4400dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville    int getVoiceNetworkType();
4410dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville
4420dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville    /**
443fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      * Returns the voice network type of a subId
444fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      * @param subId user preferred subId.
445fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      * Returns the network type
446fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      */
447fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int getVoiceNetworkTypeUsingSubId(long subId);
448fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
449fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
450e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville     * Return true if an ICC card is present
451e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville     */
452e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville    boolean hasIccCard();
4535e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville
4545e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville    /**
455fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Return true if an ICC card is present for a subId.
456fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param slotId user preferred slotId.
457fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Return true if an ICC card is present
458fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
459fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    boolean hasIccCardUsingSlotId(long slotId);
460fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
461fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
4625e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * Return if the current radio is LTE on CDMA. This
4635e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * is a tri-state return value as for a period of time
4645e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * the mode may be unknown.
4655e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     *
4665e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * @return {@link Phone#LTE_ON_CDMA_UNKNOWN}, {@link Phone#LTE_ON_CDMA_FALSE}
4675e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * or {@link PHone#LTE_ON_CDMA_TRUE}
4685e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     */
4695e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville    int getLteOnCdmaMode();
470963db55d59a170f4b17ff907c96615a19ef6fe17John Wang
471963db55d59a170f4b17ff907c96615a19ef6fe17John Wang    /**
472fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Return if the current radio is LTE on CDMA. This
473fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * is a tri-state return value as for a period of time
474fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * the mode may be unknown.
475fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *
476fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return {@link Phone#LTE_ON_CDMA_UNKNOWN}, {@link Phone#LTE_ON_CDMA_FALSE}
477fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * or {@link PHone#LTE_ON_CDMA_TRUE}
478fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
479fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int getLteOnCdmaModeUsingSubId(long subId);
480fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
481fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
482963db55d59a170f4b17ff907c96615a19ef6fe17John Wang     * Returns the all observed cell information of the device.
483963db55d59a170f4b17ff907c96615a19ef6fe17John Wang     */
484963db55d59a170f4b17ff907c96615a19ef6fe17John Wang    List<CellInfo> getAllCellInfo();
485094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville
486094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville    /**
487094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville     * Sets minimum time in milli-seconds between onCellInfoChanged
488094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville     */
489094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville    void setCellInfoListRate(int rateInMillis);
490767a662ecde33c3979bf02b793d392aca0403162Wink Saville
49157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal    /**
492fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * get default sim
493fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return sim id
494fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
495fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int getDefaultSim();
496fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
497fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
49857f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Opens a logical channel to the ICC card.
49957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
50057f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Input parameters equivalent to TS 27.007 AT+CCHO command.
50157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
50257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param AID Application id. See ETSI 102.221 and 101.220.
503a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @return an IccOpenLogicalChannelResponse object.
50457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     */
505a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal    IccOpenLogicalChannelResponse iccOpenLogicalChannel(String AID);
50657f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal
50757f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal    /**
50857f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Closes a previously opened logical channel to the ICC card.
50957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
51057f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Input parameters equivalent to TS 27.007 AT+CCHC command.
51157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
51257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param channel is the channel id to be closed as retruned by a
51357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *            successful iccOpenLogicalChannel.
51457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @return true if the channel was closed successfully.
51557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     */
51657f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal    boolean iccCloseLogicalChannel(int channel);
51757f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal
51857f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal    /**
51957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Transmit an APDU to the ICC card over a logical channel.
52057f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
52157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Input parameters equivalent to TS 27.007 AT+CGLA command.
52257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
52357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param channel is the channel id to be closed as retruned by a
52457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *            successful iccOpenLogicalChannel.
52557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param cla Class of the APDU command.
52657f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param instruction Instruction of the APDU command.
52757f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param p1 P1 value of the APDU command.
52857f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param p2 P2 value of the APDU command.
52957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param p3 P3 value of the APDU command. If p3 is negative a 4 byte APDU
53057f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *            is sent to the SIM.
53157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param data Data to be sent with the APDU.
53257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @return The APDU response from the ICC card with the status appended at
53343d94347a6feb14870a4ffd7682a816210e5e676Shishir Agrawal     *            the end.
53457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     */
535375890841df7aad36a042861f6a70f11e1f32766Shishir Agrawal    String iccTransmitApduLogicalChannel(int channel, int cla, int instruction,
53657f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal            int p1, int p2, int p3, String data);
5378f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
5388f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    /**
539a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * Transmit an APDU to the ICC card over the basic channel.
540a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     *
541a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * Input parameters equivalent to TS 27.007 AT+CSIM command.
542a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     *
543a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param cla Class of the APDU command.
544a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param instruction Instruction of the APDU command.
545a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param p1 P1 value of the APDU command.
546a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param p2 P2 value of the APDU command.
547a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param p3 P3 value of the APDU command. If p3 is negative a 4 byte APDU
548a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     *            is sent to the SIM.
549a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param data Data to be sent with the APDU.
550a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @return The APDU response from the ICC card with the status appended at
55143d94347a6feb14870a4ffd7682a816210e5e676Shishir Agrawal     *            the end.
552a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     */
553a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal    String iccTransmitApduBasicChannel(int cla, int instruction,
554a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal            int p1, int p2, int p3, String data);
555a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal
556a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal    /**
557a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * Returns the response APDU for a command APDU sent through SIM_IO.
558a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     *
559a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param fileID
560a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param command
561a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param p1 P1 value of the APDU command.
562a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param p2 P2 value of the APDU command.
563a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param p3 P3 value of the APDU command.
564a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param filePath
565a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @return The APDU response.
566a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     */
567a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal    byte[] iccExchangeSimIO(int fileID, int command, int p1, int p2, int p3,
568a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal            String filePath);
569a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal
570a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal    /**
571b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton     * Send ENVELOPE to the SIM and returns the response.
572210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton     *
573210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton     * @param contents  String containing SAT/USAT response in hexadecimal
574210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton     *                  format starting with command tag. See TS 102 223 for
575210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton     *                  details.
576b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton     * @return The APDU response from the ICC card, with the last 4 bytes
577b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton     *         being the status word. If the command fails, returns an empty
578b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton     *         string.
579210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton     */
580b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton    String sendEnvelopeWithStatus(String content);
581210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton
582210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton    /**
5838f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Read one of the NV items defined in {@link RadioNVItems} / {@code ril_nv_items.h}.
5848f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Used for device configuration by some CDMA operators.
5858f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     *
5868f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param itemID the ID of the item to read.
5878f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @return the NV item as a String, or null on any failure.
5888f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     */
5898f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    String nvReadItem(int itemID);
5908f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
5918f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    /**
5928f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Write one of the NV items defined in {@link RadioNVItems} / {@code ril_nv_items.h}.
5938f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Used for device configuration by some CDMA operators.
5948f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     *
5958f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param itemID the ID of the item to read.
5968f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param itemValue the value to write, as a String.
5978f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @return true on success; false on any failure.
5988f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     */
5998f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    boolean nvWriteItem(int itemID, String itemValue);
6008f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
6018f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    /**
6028f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Update the CDMA Preferred Roaming List (PRL) in the radio NV storage.
6038f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Used for device configuration by some CDMA operators.
6048f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     *
6058f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param preferredRoamingList byte array containing the new PRL.
6068f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @return true on success; false on any failure.
6078f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     */
6088f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    boolean nvWriteCdmaPrl(in byte[] preferredRoamingList);
6098f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
6108f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    /**
611786e71ab11f2d89afffc9db7473f16206395c813Jake Hamby     * Perform the specified type of NV config reset. The radio will be taken offline
612786e71ab11f2d89afffc9db7473f16206395c813Jake Hamby     * and the device must be rebooted after the operation. Used for device
613786e71ab11f2d89afffc9db7473f16206395c813Jake Hamby     * configuration by some CDMA operators.
6148f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     *
6158f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param resetType the type of reset to perform (1 == factory reset; 2 == NV-only reset).
6168f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @return true on success; false on any failure.
6178f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     */
6188f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    boolean nvResetConfig(int resetType);
6198f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
6209bbb37116d2c5b597f9b5e3094ff328971e03c0bEvan Charlton    /*
6211365703d4964466472904dc84117a0946d9e1a44Junda Liu     * Get the calculated preferred network type.
6221365703d4964466472904dc84117a0946d9e1a44Junda Liu     * Used for device configuration by some CDMA operators.
6231365703d4964466472904dc84117a0946d9e1a44Junda Liu     *
6241365703d4964466472904dc84117a0946d9e1a44Junda Liu     * @return the calculated preferred network type, defined in RILConstants.java.
6251365703d4964466472904dc84117a0946d9e1a44Junda Liu     */
6261365703d4964466472904dc84117a0946d9e1a44Junda Liu    int getCalculatedPreferredNetworkType();
6271365703d4964466472904dc84117a0946d9e1a44Junda Liu
6281365703d4964466472904dc84117a0946d9e1a44Junda Liu    /*
6294a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * Get the preferred network type.
6304a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * Used for device configuration by some CDMA operators.
6314a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     *
6324a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * @return the preferred network type, defined in RILConstants.java.
6334a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     */
6344a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby    int getPreferredNetworkType();
6354a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby
6364a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby    /**
6374a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * Set the preferred network type.
6384a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * Used for device configuration by some CDMA operators.
6394a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     *
6404a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * @param networkType the preferred network type, defined in RILConstants.java.
6414a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * @return true on success; false on any failure.
6424a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     */
6434a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby    boolean setPreferredNetworkType(int networkType);
644afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt
645afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt    /**
646ddb74d8eb05bf50ebae673fda87730b80e52a758Junda Liu     * Set the CDMA subscription source.
647ddb74d8eb05bf50ebae673fda87730b80e52a758Junda Liu     * Used for device supporting both NV and RUIM for CDMA.
648ddb74d8eb05bf50ebae673fda87730b80e52a758Junda Liu     *
649ddb74d8eb05bf50ebae673fda87730b80e52a758Junda Liu     * @param subscriptionType the subscription type, 0 for RUIM, 1 for NV.
650ddb74d8eb05bf50ebae673fda87730b80e52a758Junda Liu     * @return true on success; false on any failure.
651ddb74d8eb05bf50ebae673fda87730b80e52a758Junda Liu     */
652ddb74d8eb05bf50ebae673fda87730b80e52a758Junda Liu    boolean setCdmaSubscription(int subscriptionType);
653ddb74d8eb05bf50ebae673fda87730b80e52a758Junda Liu
654ddb74d8eb05bf50ebae673fda87730b80e52a758Junda Liu    /**
655afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     * User enable/disable Mobile Data.
656afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     *
657afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     * @param enable true to turn on, else false
658afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     */
659afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt    void setDataEnabled(boolean enable);
660afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt
661afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt    /**
662afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     * Get the user enabled state of Mobile Data.
663afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     *
664afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     * @return true on enabled
665afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     */
666afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt    boolean getDataEnabled();
667fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
668fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
669fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Get P-CSCF address from PCO after data connection is established or modified.
670e647099e14114475e9a2827a10dab2d2e36308c4ram     * @param apnType the apnType, "ims" for IMS APN, "emergency" for EMERGENCY APN
671fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
672e647099e14114475e9a2827a10dab2d2e36308c4ram    String[] getPcscfAddress(String apnType);
673fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
674fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
675fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Set IMS registration state
676fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
677fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    void setImsRegistrationState(boolean registered);
678fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
679762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal    /**
6802b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu     * Return MDN string for CDMA phone.
6812b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu     * @param subId user preferred subId.
6822b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu     */
6832b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu    String getCdmaMdn(long subId);
6842b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu
6852b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu    /**
6862b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu     * Return MIN string for CDMA phone.
6872b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu     * @param subId user preferred subId.
6882b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu     */
6892b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu    String getCdmaMin(long subId);
6902b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu
6912b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu    /**
692762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     * Has the calling application been granted special privileges by the carrier.
693762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     *
694762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     * If any of the packages in the calling UID has carrier privileges, the
695762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     * call will return true. This access is granted by the owner of the UICC
696762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     * card and does not depend on the registered carrier.
697762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     *
698762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     * TODO: Add a link to documentation.
699762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     *
700fc3646f58e5851e7a483b8388bdd826078166d10Shishir Agrawal     * @return carrier privilege status defined in TelephonyManager.
701762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     */
702762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal    int hasCarrierPrivileges();
703142529702dad9a6612271f487d500db80173ba7bJunda Liu
704142529702dad9a6612271f487d500db80173ba7bJunda Liu    /**
705142529702dad9a6612271f487d500db80173ba7bJunda Liu     * Similar to above, but check for pkg whose name is pkgname.
706142529702dad9a6612271f487d500db80173ba7bJunda Liu     */
70756be215bcc5df95447c49d99915c299965b44207Shishir Agrawal    int checkCarrierPrivilegesForPackage(String pkgname);
708f9aefdb534c6cb2af22dfb7614a1c15c2d67dd9cDerek Tan
709f9aefdb534c6cb2af22dfb7614a1c15c2d67dd9cDerek Tan    /**
71063c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal     * Returns the package name of the carrier apps that should handle the input intent.
71163c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal     *
71263c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal     * @param packageManager PackageManager for getting receivers.
71363c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal     * @param intent Intent that will be broadcast.
71463c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal     * @return list of carrier app package names that can handle the intent.
71563c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal     *         Returns null if there is an error and an empty list if there
71663c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal     *         are no matching packages.
71763c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal     */
71863c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal    List<String> getCarrierPackageNamesForBroadcastIntent(in Intent intent);
71963c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal
72063c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal    /**
721f9aefdb534c6cb2af22dfb7614a1c15c2d67dd9cDerek Tan     * Set whether Android should display a simplified Mobile Network Settings UI.
722f9aefdb534c6cb2af22dfb7614a1c15c2d67dd9cDerek Tan     * The setting won't be persisted during power cycle.
723f9aefdb534c6cb2af22dfb7614a1c15c2d67dd9cDerek Tan     *
724f9aefdb534c6cb2af22dfb7614a1c15c2d67dd9cDerek Tan     * @param subId for which the simplified UI should be enabled or disabled.
725f9aefdb534c6cb2af22dfb7614a1c15c2d67dd9cDerek Tan     * @param enable true means enabling the simplified UI.
726f9aefdb534c6cb2af22dfb7614a1c15c2d67dd9cDerek Tan     */
727f9aefdb534c6cb2af22dfb7614a1c15c2d67dd9cDerek Tan    void enableSimplifiedNetworkSettings(long subId, boolean enable);
728f9aefdb534c6cb2af22dfb7614a1c15c2d67dd9cDerek Tan
729f9aefdb534c6cb2af22dfb7614a1c15c2d67dd9cDerek Tan    /**
730f9aefdb534c6cb2af22dfb7614a1c15c2d67dd9cDerek Tan     * Get whether a simplified Mobile Network Settings UI is enabled.
731f9aefdb534c6cb2af22dfb7614a1c15c2d67dd9cDerek Tan     *
732f9aefdb534c6cb2af22dfb7614a1c15c2d67dd9cDerek Tan     * @param subId for which the simplified UI should be enabled or disabled.
733f9aefdb534c6cb2af22dfb7614a1c15c2d67dd9cDerek Tan     * @return true if the simplified UI is enabled.
734f9aefdb534c6cb2af22dfb7614a1c15c2d67dd9cDerek Tan     */
735f9aefdb534c6cb2af22dfb7614a1c15c2d67dd9cDerek Tan    boolean getSimplifiedNetworkSettingsEnabled(long subId);
736818631b679171ffb49eaa641bee06b9c953651daDerek Tan
737818631b679171ffb49eaa641bee06b9c953651daDerek Tan    /**
738818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * Set the phone number string and its alphatag for line 1 for display
739818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * purpose only, for example, displayed in Phone Status. It won't change
740818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * the actual MSISDN/MDN. This setting won't be persisted during power cycle
741818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * and it should be set again after reboot.
742818631b679171ffb49eaa641bee06b9c953651daDerek Tan     *
743818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * @param subId the subscriber that the alphatag and dialing number belongs to.
744818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * @param alphaTag alpha-tagging of the dailing nubmer
745818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * @param number The dialing number
746818631b679171ffb49eaa641bee06b9c953651daDerek Tan     */
747818631b679171ffb49eaa641bee06b9c953651daDerek Tan    void setLine1NumberForDisplay(long subId, String alphaTag, String number);
748818631b679171ffb49eaa641bee06b9c953651daDerek Tan
749818631b679171ffb49eaa641bee06b9c953651daDerek Tan    /**
750818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * Returns the displayed dialing number string if it was set previously via
751818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * {@link #setLine1NumberForDisplay}. Otherwise returns null.
752818631b679171ffb49eaa641bee06b9c953651daDerek Tan     *
753818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * @param subId whose dialing number for line 1 is returned.
754818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * @return the displayed dialing number if set, or null if not set.
755818631b679171ffb49eaa641bee06b9c953651daDerek Tan     */
756818631b679171ffb49eaa641bee06b9c953651daDerek Tan    String getLine1NumberForDisplay(long subId);
757818631b679171ffb49eaa641bee06b9c953651daDerek Tan
758818631b679171ffb49eaa641bee06b9c953651daDerek Tan    /**
759818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * Returns the displayed alphatag of the dialing number if it was set
760818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * previously via {@link #setLine1NumberForDisplay}. Otherwise returns null.
761818631b679171ffb49eaa641bee06b9c953651daDerek Tan     *
762818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * @param subId whose alphatag associated with line 1 is returned.
763818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * @return the displayed alphatag of the dialing number if set, or null if
764818631b679171ffb49eaa641bee06b9c953651daDerek Tan     *         not set.
765818631b679171ffb49eaa641bee06b9c953651daDerek Tan     */
766818631b679171ffb49eaa641bee06b9c953651daDerek Tan    String getLine1AlphaTagForDisplay(long subId);
76786578cca383562c72751d747905280afdeb2bdfbShishir Agrawal
76886578cca383562c72751d747905280afdeb2bdfbShishir Agrawal    /**
76986578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     * Override the operator branding for the input ICCID.
77086578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     *
77186578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     * Once set, whenever the ICCID is inserted into the device, the service
77286578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     * provider name (SPN) and the operator name will both be replaced by the
77386578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     * brand value input. To unset the value, the same function should be
77486578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     * called with a null brand value.
77586578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     *
77686578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     * <p>Requires Permission:
77786578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     *   {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}
77886578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     *  or has to be carrier app - see #hasCarrierPrivileges.
77986578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     *
78086578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     * @param iccid The ICCID of that the branding applies to.
78186578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     * @param brand The brand name to display/set.
78286578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     * @return true if the operation was executed correctly.
78386578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     */
78486578cca383562c72751d747905280afdeb2bdfbShishir Agrawal    boolean setOperatorBrandOverride(String iccId, String brand);
7853099c831441e861328cd4965011c854e060ce56aSteven Liu
7863099c831441e861328cd4965011c854e060ce56aSteven Liu    /**
7873099c831441e861328cd4965011c854e060ce56aSteven Liu     * Returns the result and response from RIL for oem request
7883099c831441e861328cd4965011c854e060ce56aSteven Liu     *
7893099c831441e861328cd4965011c854e060ce56aSteven Liu     * @param oemReq the data is sent to ril.
7903099c831441e861328cd4965011c854e060ce56aSteven Liu     * @param oemResp the respose data from RIL.
7913099c831441e861328cd4965011c854e060ce56aSteven Liu     * @return negative value request was not handled or get error
7923099c831441e861328cd4965011c854e060ce56aSteven Liu     *         0 request was handled succesfully, but no response data
7933099c831441e861328cd4965011c854e060ce56aSteven Liu     *         positive value success, data length of response
7943099c831441e861328cd4965011c854e060ce56aSteven Liu     */
7953099c831441e861328cd4965011c854e060ce56aSteven Liu    int invokeOemRilRequestRaw(in byte[] oemReq, out byte[] oemResp);
79657f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal}
797fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
798