ITelephony.aidl revision 5c728994311c40821604c6711171e860776659a6
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;
21ed4ca5ca2c40ed2c838aaf483fcd58abdfa0ff08Santos Cordonimport android.telecom.PhoneAccount;
22fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Savilleimport android.telephony.CellInfo;
23a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawalimport android.telephony.IccOpenLogicalChannelResponse;
24a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawalimport android.telephony.NeighboringCellInfo;
252af2d57d578e0c3a2740628e7c6336b19961cc49Wink Savilleimport android.telephony.RadioAccessFamily;
265c728994311c40821604c6711171e860776659a6Prerepa Viswanadhamimport android.telephony.ModemActivityInfo;
27a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawalimport java.util.List;
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
29aae9216320328e6b865725219a31a029ea46c1b0Sailesh Nepal
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
31767a662ecde33c3979bf02b793d392aca0403162Wink Saville * Interface used to interact with the phone.  Mostly this is used by the
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * TelephonyManager class.  A few places are still using this directly.
334a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee * Please clean them up if possible and use TelephonyManager instead.
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@hide}
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinterface ITelephony {
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Dial a number. This doesn't place the call. It displays
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the Dialer screen.
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param number the number to be dialed. If null, this
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * would display the Dialer screen with no number pre-filled.
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void dial(String number);
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Place a call to the specified number.
4916a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov     * @param callingPackage The package making the call.
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param number the number to be called.
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
52f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn    void call(String callingPackage, String number);
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
554d396052deb54399cbadbeb8abd873df6f3af342Jeff Brown     * End call if there is a call in progress, otherwise does nothing.
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return whether it hung up
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean endCall();
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
62fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * End call on particular subId or go to the Home screen
63fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
64fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return whether it hung up
65fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
6663f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    boolean endCallForSubscriber(int subId);
67fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
68fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Answer the currently-ringing call.
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If there's already a current active call, that call will be
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * automatically put on hold.  If both lines are currently in use, the
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * current active call will be ended.
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * TODO: provide a flag to let the caller specify what policy to use
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * if both lines are in use.  (The current behavior is hardwired to
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * "answer incoming, end ongoing", which is how the CALL button
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * is specced to behave.)
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * TODO: this should be a oneway call (especially since it's called
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * directly from the key queue thread).
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void answerRingingCall();
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8605e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * Answer the currently-ringing call on particular subId .
8705e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     *
8805e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * If there's already a current active call, that call will be
8905e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * automatically put on hold.  If both lines are currently in use, the
9005e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * current active call will be ended.
9105e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     *
9205e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * TODO: provide a flag to let the caller specify what policy to use
9305e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * if both lines are in use.  (The current behavior is hardwired to
9405e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * "answer incoming, end ongoing", which is how the CALL button
9505e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * is specced to behave.)
9605e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     *
9705e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * TODO: this should be a oneway call (especially since it's called
9805e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * directly from the key queue thread).
9905e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     */
10063f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    void answerRingingCallForSubscriber(int subId);
10105e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville
10205e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville    /**
1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Silence the ringer if an incoming call is currently ringing.
1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (If vibrating, stop the vibrator also.)
1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * It's safe to call this if the ringer has already been silenced, or
1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * even if there's no incoming call.  (If so, this method will do nothing.)
1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * TODO: this should be a oneway call too (see above).
1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *       (Actually *all* the methods here that return void can
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *       probably be oneway.)
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void silenceRinger();
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check if we are in either an active or holding call
1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the phone state is OFFHOOK.
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isOffhook();
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
122fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Check if a particular subId has an active or holding call
123fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *
124fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
125fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return true if the phone state is OFFHOOK.
126fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
12763f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    boolean isOffhookForSubscriber(int subId);
128fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
129fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
130fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Check if an incoming phone call is ringing or call waiting
131fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * on a particular subId.
132fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *
133fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
134fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return true if the phone state is RINGING.
135fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
13663f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    boolean isRingingForSubscriber(int subId);
137fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
138fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check if an incoming phone call is ringing or call waiting.
1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the phone state is RINGING.
1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isRinging();
1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check if the phone is idle.
1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the phone state is IDLE.
1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isIdle();
1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
151fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Check if the phone is idle on a particular subId.
152fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *
153fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
154fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return true if the phone state is IDLE.
155fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
15663f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    boolean isIdleForSubscriber(int subId);
157fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
158fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check to see if the radio is on or not.
1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return returns true if the radio is on.
1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isRadioOn();
1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
165fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Check to see if the radio is on or not on particular subId.
166fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
167fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return returns true if the radio is on.
168fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
16963f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    boolean isRadioOnForSubscriber(int subId);
170fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
171fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check if the SIM pin lock is enabled.
1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the SIM pin lock is enabled.
17416a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov     * @param callingPackage The package making the call.
1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
17616a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov    boolean isSimPinEnabled(String callingPackage);
1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Supply a pin to unlock the SIM.  Blocks until a result is determined.
1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param pin The pin to check.
1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return whether the operation was a success.
1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean supplyPin(String pin);
1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
186fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Supply a pin to unlock the SIM for particular subId.
187fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Blocks until a result is determined.
188fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param pin The pin to check.
189fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
190fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return whether the operation was a success.
191fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
19263f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    boolean supplyPinForSubscriber(int subId, String pin);
193fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
194fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
19598c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     * Supply puk to unlock the SIM and set SIM pin to new pin.
19698c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     *  Blocks until a result is determined.
19798c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     * @param puk The puk to check.
19898c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     *        pin The new pin to be set in SIM
19998c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     * @return whether the operation was a success.
20098c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     */
20198c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang    boolean supplyPuk(String puk, String pin);
20298c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang
20398c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang    /**
204fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Supply puk to unlock the SIM and set SIM pin to new pin.
205fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *  Blocks until a result is determined.
206fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param puk The puk to check.
207fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *        pin The new pin to be set in SIM
208fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
209fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return whether the operation was a success.
210fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
21163f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    boolean supplyPukForSubscriber(int subId, String puk, String pin);
212fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
213fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
214b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Supply a pin to unlock the SIM.  Blocks until a result is determined.
215b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Returns a specific success/error code.
216b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * @param pin The pin to check.
217b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code
218b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     *         retValue[1] = number of attempts remaining if known otherwise -1
219b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     */
220b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville    int[] supplyPinReportResult(String pin);
221b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville
222b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville    /**
223fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Supply a pin to unlock the SIM.  Blocks until a result is determined.
224fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns a specific success/error code.
225fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param 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     */
22963f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    int[] supplyPinReportResultForSubscriber(int subId, String pin);
230fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
231fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
232b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Supply puk to unlock the SIM and set SIM pin to new pin.
233b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Blocks until a result is determined.
234b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Returns a specific success/error code
235b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * @param puk The puk to check
236b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     *        pin The pin to check.
237b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code
238b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     *         retValue[1] = number of attempts remaining if known otherwise -1
239b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     */
240b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville    int[] supplyPukReportResult(String puk, String pin);
241b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville
242b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville    /**
243fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Supply puk to unlock the SIM and set SIM pin to new pin.
244fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Blocks until a result is determined.
245fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns a specific success/error code
246fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param puk The puk to check
247fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *        pin The pin to check.
248fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code
249fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *         retValue[1] = number of attempts remaining if known otherwise -1
250fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
25163f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    int[] supplyPukReportResultForSubscriber(int subId, String puk, String pin);
252fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
253fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Handles PIN MMI commands (PIN/PIN2/PUK/PUK2), which are initiated
2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * without SEND (so <code>dial</code> is not appropriate).
256767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param dialString the MMI command to be executed.
2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if MMI command is executed.
2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean handlePinMmi(String dialString);
2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
263fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Handles PIN MMI commands (PIN/PIN2/PUK/PUK2), which are initiated
264fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * without SEND (so <code>dial</code> is not appropriate) for
265fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * a particular subId.
266fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param dialString the MMI command to be executed.
267fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
268fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return true if MMI command is executed.
269fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
27063f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    boolean handlePinMmiForSubscriber(int subId, String dialString);
271fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
272fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Toggles the radio on or off.
2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void toggleRadioOnOff();
2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
278fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Toggles the radio on or off on particular subId.
279fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
280fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
28163f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    void toggleRadioOnOffForSubscriber(int subId);
282fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
283fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Set the radio to on or off
2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean setRadio(boolean turnOn);
2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
289fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Set the radio to on or off on particular subId.
290fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
291fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
29263f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    boolean setRadioForSubscriber(int subId, boolean turnOn);
293fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
294fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
29545ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville     * Set the radio to on or off unconditionally
29645ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville     */
29745ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville    boolean setRadioPower(boolean turnOn);
29845ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville
29945ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville    /**
3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Request to update location information in service state
3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void updateServiceLocation();
3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
305fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Request to update location information for a subscrition in service state
306fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
307fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
30863f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    void updateServiceLocationForSubscriber(int subId);
309fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
310fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Enable location update notifications.
3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void enableLocationUpdates();
3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
316fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Enable location update notifications.
317fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
318fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
31963f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    void enableLocationUpdatesForSubscriber(int subId);
320fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
321fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Disable location update notifications.
3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void disableLocationUpdates();
3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
327fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Disable location update notifications.
328fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
329fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
33063f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    void disableLocationUpdatesForSubscriber(int subId);
331fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
332fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Allow mobile data connections.
3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean enableDataConnectivity();
3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Disallow mobile data connections.
3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean disableDataConnectivity();
3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Report whether data connectivity is possible.
3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isDataConnectivityPossible();
3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
347275b5635ad98a411d511894e98f80e8b8bc41799Svetoslav    Bundle getCellLocation(String callingPkg);
3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the neighboring cell information of the device.
3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
352f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn    List<NeighboringCellInfo> getNeighboringCellInfo(String callingPkg);
3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     int getCallState();
355fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
356fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
357fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the call state for a subId.
358fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
35963f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville     int getCallStateForSubscriber(int subId);
360fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
3619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     int getDataActivity();
3629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     int getDataState();
363767a662ecde33c3979bf02b793d392aca0403162Wink Saville
364767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
365767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Returns the current active phone type as integer.
366767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Returns TelephonyManager.PHONE_TYPE_CDMA if RILConstants.CDMA_PHONE
367767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * and TelephonyManager.PHONE_TYPE_GSM if RILConstants.GSM_PHONE
368767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
369767a662ecde33c3979bf02b793d392aca0403162Wink Saville    int getActivePhoneType();
370767a662ecde33c3979bf02b793d392aca0403162Wink Saville
371e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
372fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the current active phone type as integer for particular subId.
373fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns TelephonyManager.PHONE_TYPE_CDMA if RILConstants.CDMA_PHONE
374fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * and TelephonyManager.PHONE_TYPE_GSM if RILConstants.GSM_PHONE
375fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
376fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
37763f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    int getActivePhoneTypeForSubscriber(int subId);
378fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
379fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
380e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Returns the CDMA ERI icon index to display
381e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
382e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    int getCdmaEriIconIndex();
383e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
384e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
385fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the CDMA ERI icon index to display on particular subId.
386fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
387fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
38863f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    int getCdmaEriIconIndexForSubscriber(int subId);
389fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
390fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
391e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Returns the CDMA ERI icon mode,
392e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * 0 - ON
393e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * 1 - FLASHING
394e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
395e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    int getCdmaEriIconMode();
396e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
397e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
398fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the CDMA ERI icon mode on particular subId,
399fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * 0 - ON
400fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * 1 - FLASHING
401fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
402fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
40363f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    int getCdmaEriIconModeForSubscriber(int subId);
404fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
405fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
406e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Returns the CDMA ERI text,
407e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
408e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    String getCdmaEriText();
409e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
410dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
411fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the CDMA ERI text for particular subId,
412fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
413fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
41463f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    String getCdmaEriTextForSubscriber(int subId);
415fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
416fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
4174d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville     * Returns true if OTA service provisioning needs to run.
4184d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville     * Only relevant on some technologies, others will always
4194d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville     * return false.
420767be5f0b929cc1eeb8a7d5aa7a02e228053e9bbJim Miller     */
4214d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville    boolean needsOtaServiceProvisioning();
422767be5f0b929cc1eeb8a7d5aa7a02e228053e9bbJim Miller
423767be5f0b929cc1eeb8a7d5aa7a02e228053e9bbJim Miller    /**
4245c1a63c2235c36ce0b520fa88a9d21ffe255756eShishir Agrawal     * Sets the voicemail number for a particular subscriber.
4255c1a63c2235c36ce0b520fa88a9d21ffe255756eShishir Agrawal     */
4265c1a63c2235c36ce0b520fa88a9d21ffe255756eShishir Agrawal    boolean setVoiceMailNumber(int subId, String alphaTag, String number);
4275c1a63c2235c36ce0b520fa88a9d21ffe255756eShishir Agrawal
4285c1a63c2235c36ce0b520fa88a9d21ffe255756eShishir Agrawal    /**
429dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville      * Returns the unread count of voicemails
430dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville      */
431ce099c3226b33b43e0dd5d1f24347b14a2223ee1David Krause    int getVoiceMessageCount();
432dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
433ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe    /**
434fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the unread count of voicemails for a subId.
435fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
436fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the unread count of voicemails
437fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
43863f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    int getVoiceMessageCountForSubscriber(int subId);
439fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
440fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
4410dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville      * Returns the network type for data transmission
442ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe      */
443ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe    int getNetworkType();
44498c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang
445e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville    /**
446fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the network type of a subId.
447fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
448fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the network type
449fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
45063f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    int getNetworkTypeForSubscriber(int subId);
451fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
452fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
4530dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville      * Returns the network type for data transmission
4540dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville      */
4550dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville    int getDataNetworkType();
4560dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville
4570dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville    /**
458fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      * Returns the data network type of a subId
459fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      * @param subId user preferred subId.
460fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      * Returns the network type
461fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      */
46263f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    int getDataNetworkTypeForSubscriber(int subId);
463fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
464fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
4650dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville      * Returns the network type for voice
4660dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville      */
4670dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville    int getVoiceNetworkType();
4680dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville
4690dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville    /**
470fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      * Returns the voice network type of a subId
471fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      * @param subId user preferred subId.
472fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      * Returns the network type
473fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      */
47463f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    int getVoiceNetworkTypeForSubscriber(int subId);
475fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
476fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
477e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville     * Return true if an ICC card is present
478e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville     */
479e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville    boolean hasIccCard();
4805e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville
4815e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville    /**
482fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Return true if an ICC card is present for a subId.
483fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param slotId user preferred slotId.
484fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Return true if an ICC card is present
485fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
48663f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    boolean hasIccCardUsingSlotId(int slotId);
487fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
488fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
4895e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * Return if the current radio is LTE on CDMA. This
4905e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * is a tri-state return value as for a period of time
4915e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * the mode may be unknown.
4925e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     *
4935e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * @return {@link Phone#LTE_ON_CDMA_UNKNOWN}, {@link Phone#LTE_ON_CDMA_FALSE}
4945e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * or {@link PHone#LTE_ON_CDMA_TRUE}
4955e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     */
4965e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville    int getLteOnCdmaMode();
497963db55d59a170f4b17ff907c96615a19ef6fe17John Wang
498963db55d59a170f4b17ff907c96615a19ef6fe17John Wang    /**
499fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Return if the current radio is LTE on CDMA. This
500fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * is a tri-state return value as for a period of time
501fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * the mode may be unknown.
502fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *
503fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return {@link Phone#LTE_ON_CDMA_UNKNOWN}, {@link Phone#LTE_ON_CDMA_FALSE}
504fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * or {@link PHone#LTE_ON_CDMA_TRUE}
505fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
50663f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    int getLteOnCdmaModeForSubscriber(int subId);
507fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
508fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
509963db55d59a170f4b17ff907c96615a19ef6fe17John Wang     * Returns the all observed cell information of the device.
510963db55d59a170f4b17ff907c96615a19ef6fe17John Wang     */
511275b5635ad98a411d511894e98f80e8b8bc41799Svetoslav    List<CellInfo> getAllCellInfo(String callingPkg);
512094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville
513094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville    /**
514094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville     * Sets minimum time in milli-seconds between onCellInfoChanged
515094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville     */
516094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville    void setCellInfoListRate(int rateInMillis);
517767a662ecde33c3979bf02b793d392aca0403162Wink Saville
51857f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal    /**
519fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * get default sim
520fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return sim id
521fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
522fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int getDefaultSim();
523fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
524fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
52557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Opens a logical channel to the ICC card.
52657f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
52757f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Input parameters equivalent to TS 27.007 AT+CCHO command.
52857f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
52957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param AID Application id. See ETSI 102.221 and 101.220.
530a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @return an IccOpenLogicalChannelResponse object.
53157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     */
532a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal    IccOpenLogicalChannelResponse iccOpenLogicalChannel(String AID);
53357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal
53457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal    /**
53557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Closes a previously opened logical channel to the ICC card.
53657f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
53757f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Input parameters equivalent to TS 27.007 AT+CCHC command.
53857f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
53957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param channel is the channel id to be closed as retruned by a
54057f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *            successful iccOpenLogicalChannel.
54157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @return true if the channel was closed successfully.
54257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     */
54357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal    boolean iccCloseLogicalChannel(int channel);
54457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal
54557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal    /**
54657f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Transmit an APDU to the ICC card over a logical channel.
54757f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
54857f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Input parameters equivalent to TS 27.007 AT+CGLA command.
54957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
55057f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param channel is the channel id to be closed as retruned by a
55157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *            successful iccOpenLogicalChannel.
55257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param cla Class of the APDU command.
55357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param instruction Instruction of the APDU command.
55457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param p1 P1 value of the APDU command.
55557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param p2 P2 value of the APDU command.
55657f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param p3 P3 value of the APDU command. If p3 is negative a 4 byte APDU
55757f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *            is sent to the SIM.
55857f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param data Data to be sent with the APDU.
55957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @return The APDU response from the ICC card with the status appended at
56043d94347a6feb14870a4ffd7682a816210e5e676Shishir Agrawal     *            the end.
56157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     */
562375890841df7aad36a042861f6a70f11e1f32766Shishir Agrawal    String iccTransmitApduLogicalChannel(int channel, int cla, int instruction,
56357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal            int p1, int p2, int p3, String data);
5648f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
5658f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    /**
566a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * Transmit an APDU to the ICC card over the basic channel.
567a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     *
568a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * Input parameters equivalent to TS 27.007 AT+CSIM command.
569a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     *
570a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param cla Class of the APDU command.
571a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param instruction Instruction of the APDU command.
572a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param p1 P1 value of the APDU command.
573a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param p2 P2 value of the APDU command.
574a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param p3 P3 value of the APDU command. If p3 is negative a 4 byte APDU
575a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     *            is sent to the SIM.
576a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param data Data to be sent with the APDU.
577a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @return The APDU response from the ICC card with the status appended at
57843d94347a6feb14870a4ffd7682a816210e5e676Shishir Agrawal     *            the end.
579a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     */
580a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal    String iccTransmitApduBasicChannel(int cla, int instruction,
581a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal            int p1, int p2, int p3, String data);
582a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal
583a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal    /**
584a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * Returns the response APDU for a command APDU sent through SIM_IO.
585a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     *
586a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param fileID
587a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param command
588a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param p1 P1 value of the APDU command.
589a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param p2 P2 value of the APDU command.
590a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param p3 P3 value of the APDU command.
591a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param filePath
592a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @return The APDU response.
593a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     */
594a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal    byte[] iccExchangeSimIO(int fileID, int command, int p1, int p2, int p3,
595a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal            String filePath);
596a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal
597a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal    /**
598b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton     * Send ENVELOPE to the SIM and returns the response.
599210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton     *
600210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton     * @param contents  String containing SAT/USAT response in hexadecimal
601210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton     *                  format starting with command tag. See TS 102 223 for
602210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton     *                  details.
603b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton     * @return The APDU response from the ICC card, with the last 4 bytes
604b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton     *         being the status word. If the command fails, returns an empty
605b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton     *         string.
606210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton     */
607b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton    String sendEnvelopeWithStatus(String content);
608210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton
609210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton    /**
6108f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Read one of the NV items defined in {@link RadioNVItems} / {@code ril_nv_items.h}.
6118f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Used for device configuration by some CDMA operators.
6128f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     *
6138f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param itemID the ID of the item to read.
6148f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @return the NV item as a String, or null on any failure.
6158f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     */
6168f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    String nvReadItem(int itemID);
6178f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
6188f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    /**
6198f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Write one of the NV items defined in {@link RadioNVItems} / {@code ril_nv_items.h}.
6208f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Used for device configuration by some CDMA operators.
6218f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     *
6228f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param itemID the ID of the item to read.
6238f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param itemValue the value to write, as a String.
6248f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @return true on success; false on any failure.
6258f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     */
6268f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    boolean nvWriteItem(int itemID, String itemValue);
6278f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
6288f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    /**
6298f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Update the CDMA Preferred Roaming List (PRL) in the radio NV storage.
6308f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Used for device configuration by some CDMA operators.
6318f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     *
6328f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param preferredRoamingList byte array containing the new PRL.
6338f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @return true on success; false on any failure.
6348f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     */
6358f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    boolean nvWriteCdmaPrl(in byte[] preferredRoamingList);
6368f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
6378f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    /**
638786e71ab11f2d89afffc9db7473f16206395c813Jake Hamby     * Perform the specified type of NV config reset. The radio will be taken offline
639786e71ab11f2d89afffc9db7473f16206395c813Jake Hamby     * and the device must be rebooted after the operation. Used for device
640786e71ab11f2d89afffc9db7473f16206395c813Jake Hamby     * configuration by some CDMA operators.
6418f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     *
6428f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param resetType the type of reset to perform (1 == factory reset; 2 == NV-only reset).
6438f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @return true on success; false on any failure.
6448f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     */
6458f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    boolean nvResetConfig(int resetType);
6468f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
6479bbb37116d2c5b597f9b5e3094ff328971e03c0bEvan Charlton    /*
6481365703d4964466472904dc84117a0946d9e1a44Junda Liu     * Get the calculated preferred network type.
6491365703d4964466472904dc84117a0946d9e1a44Junda Liu     * Used for device configuration by some CDMA operators.
65016a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov     * @param callingPackage The package making the call.
6511365703d4964466472904dc84117a0946d9e1a44Junda Liu     *
6521365703d4964466472904dc84117a0946d9e1a44Junda Liu     * @return the calculated preferred network type, defined in RILConstants.java.
6531365703d4964466472904dc84117a0946d9e1a44Junda Liu     */
65416a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov    int getCalculatedPreferredNetworkType(String callingPackage);
6551365703d4964466472904dc84117a0946d9e1a44Junda Liu
6561365703d4964466472904dc84117a0946d9e1a44Junda Liu    /*
6574a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * Get the preferred network type.
6584a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * Used for device configuration by some CDMA operators.
6594a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     *
660984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott     * @param subId the id of the subscription to query.
6614a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * @return the preferred network type, defined in RILConstants.java.
6624a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     */
663984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott    int getPreferredNetworkType(int subId);
6644a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby
6654a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby    /**
66638531581fc19f9172fabe56047b326e5dab88625Junda Liu     * Check TETHER_DUN_REQUIRED and TETHER_DUN_APN settings, net.tethering.noprovisioning
66738531581fc19f9172fabe56047b326e5dab88625Junda Liu     * SystemProperty, and config_tether_apndata to decide whether DUN APN is required for
66838531581fc19f9172fabe56047b326e5dab88625Junda Liu     * tethering.
66938531581fc19f9172fabe56047b326e5dab88625Junda Liu     *
67038531581fc19f9172fabe56047b326e5dab88625Junda Liu     * @return 0: Not required. 1: required. 2: Not set.
67138531581fc19f9172fabe56047b326e5dab88625Junda Liu     */
67238531581fc19f9172fabe56047b326e5dab88625Junda Liu    int getTetherApnRequired();
67338531581fc19f9172fabe56047b326e5dab88625Junda Liu
67438531581fc19f9172fabe56047b326e5dab88625Junda Liu    /**
675984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott     * Set the network selection mode to automatic.
676984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott     *
677984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott     * @param subId the id of the subscription to update.
678984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott     */
679984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott    void setNetworkSelectionModeAutomatic(int subId);
680984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott
681984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott    /**
6824a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * Set the preferred network type.
6834a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * Used for device configuration by some CDMA operators.
6844a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     *
685984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott     * @param subId the id of the subscription to update.
6864a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * @param networkType the preferred network type, defined in RILConstants.java.
6874a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * @return true on success; false on any failure.
6884a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     */
689984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott    boolean setPreferredNetworkType(int subId, int networkType);
690afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt
691afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt    /**
692afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     * User enable/disable Mobile Data.
693afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     *
694afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     * @param enable true to turn on, else false
695afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     */
69636ffb0494dd1045c164b7479b68165e206f8c759Wink Saville    void setDataEnabled(int subId, boolean enable);
697afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt
698afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt    /**
699afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     * Get the user enabled state of Mobile Data.
700afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     *
701afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     * @return true on enabled
702afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     */
70336ffb0494dd1045c164b7479b68165e206f8c759Wink Saville    boolean getDataEnabled(int subId);
704fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
705fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
706fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Get P-CSCF address from PCO after data connection is established or modified.
707e647099e14114475e9a2827a10dab2d2e36308c4ram     * @param apnType the apnType, "ims" for IMS APN, "emergency" for EMERGENCY APN
70816a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov     * @param callingPackage The package making the call.
709fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
71016a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov    String[] getPcscfAddress(String apnType, String callingPackage);
711fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
712fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
713fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Set IMS registration state
714fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
715fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    void setImsRegistrationState(boolean registered);
716fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
717762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal    /**
7182b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu     * Return MDN string for CDMA phone.
7192b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu     * @param subId user preferred subId.
7202b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu     */
72163f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    String getCdmaMdn(int subId);
7222b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu
7232b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu    /**
7242b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu     * Return MIN string for CDMA phone.
7252b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu     * @param subId user preferred subId.
7262b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu     */
72763f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    String getCdmaMin(int subId);
7282b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu
7292b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu    /**
730762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     * Has the calling application been granted special privileges by the carrier.
731762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     *
732762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     * If any of the packages in the calling UID has carrier privileges, the
733762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     * call will return true. This access is granted by the owner of the UICC
734762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     * card and does not depend on the registered carrier.
735762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     *
736762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     * TODO: Add a link to documentation.
737762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     *
738fc3646f58e5851e7a483b8388bdd826078166d10Shishir Agrawal     * @return carrier privilege status defined in TelephonyManager.
739762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     */
740ab57c29092eb9185375de86d82ff32e6079f5cecShishir Agrawal    int getCarrierPrivilegeStatus();
741142529702dad9a6612271f487d500db80173ba7bJunda Liu
742142529702dad9a6612271f487d500db80173ba7bJunda Liu    /**
743142529702dad9a6612271f487d500db80173ba7bJunda Liu     * Similar to above, but check for pkg whose name is pkgname.
744142529702dad9a6612271f487d500db80173ba7bJunda Liu     */
74556be215bcc5df95447c49d99915c299965b44207Shishir Agrawal    int checkCarrierPrivilegesForPackage(String pkgname);
746f9aefdb534c6cb2af22dfb7614a1c15c2d67dd9cDerek Tan
747f9aefdb534c6cb2af22dfb7614a1c15c2d67dd9cDerek Tan    /**
748f3c7bf432dc5c21fdecbb44865c037313d21b4cfJunda Liu     * Returns list of the package names of the carrier apps that should handle the input intent
749f3c7bf432dc5c21fdecbb44865c037313d21b4cfJunda Liu     * and have carrier privileges for the given phoneId.
75063c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal     *
7513892fc0349a91097f53152eaf2801dfebb2066caDiego Pontoriero     * @param intent Intent that will be sent.
752f3c7bf432dc5c21fdecbb44865c037313d21b4cfJunda Liu     * @param phoneId The phoneId on which the carrier app has carrier privileges.
753f3c7bf432dc5c21fdecbb44865c037313d21b4cfJunda Liu     * @return list of carrier app package names that can handle the intent on phoneId.
75463c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal     *         Returns null if there is an error and an empty list if there
75563c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal     *         are no matching packages.
75663c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal     */
757f3c7bf432dc5c21fdecbb44865c037313d21b4cfJunda Liu    List<String> getCarrierPackageNamesForIntentAndPhone(in Intent intent, int phoneId);
75863c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal
75963c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal    /**
7602bae510ccef2da7dd767f8148d4e3539037f4aaaDerek Tan     * Set the line 1 phone number string and its alphatag for the current ICCID
7612bae510ccef2da7dd767f8148d4e3539037f4aaaDerek Tan     * for display purpose only, for example, displayed in Phone Status. It won't
7622bae510ccef2da7dd767f8148d4e3539037f4aaaDerek Tan     * change the actual MSISDN/MDN. To unset alphatag or number, pass in a null
7632bae510ccef2da7dd767f8148d4e3539037f4aaaDerek Tan     * value.
764818631b679171ffb49eaa641bee06b9c953651daDerek Tan     *
765818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * @param subId the subscriber that the alphatag and dialing number belongs to.
766818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * @param alphaTag alpha-tagging of the dailing nubmer
767818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * @param number The dialing number
7680201a6f6f16a872405a5f9ee65026e948eb162d0Shishir Agrawal     * @return true if the operation was executed correctly.
769818631b679171ffb49eaa641bee06b9c953651daDerek Tan     */
7700201a6f6f16a872405a5f9ee65026e948eb162d0Shishir Agrawal    boolean setLine1NumberForDisplayForSubscriber(int subId, String alphaTag, String number);
771818631b679171ffb49eaa641bee06b9c953651daDerek Tan
772818631b679171ffb49eaa641bee06b9c953651daDerek Tan    /**
773818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * Returns the displayed dialing number string if it was set previously via
774818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * {@link #setLine1NumberForDisplay}. Otherwise returns null.
775818631b679171ffb49eaa641bee06b9c953651daDerek Tan     *
776818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * @param subId whose dialing number for line 1 is returned.
77716a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov     * @param callingPackage The package making the call.
778818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * @return the displayed dialing number if set, or null if not set.
779818631b679171ffb49eaa641bee06b9c953651daDerek Tan     */
78016a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov    String getLine1NumberForDisplay(int subId, String callingPackage);
781818631b679171ffb49eaa641bee06b9c953651daDerek Tan
782818631b679171ffb49eaa641bee06b9c953651daDerek Tan    /**
783818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * Returns the displayed alphatag of the dialing number if it was set
784818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * previously via {@link #setLine1NumberForDisplay}. Otherwise returns null.
785818631b679171ffb49eaa641bee06b9c953651daDerek Tan     *
786818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * @param subId whose alphatag associated with line 1 is returned.
78716a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov     * @param callingPackage The package making the call.
788818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * @return the displayed alphatag of the dialing number if set, or null if
789818631b679171ffb49eaa641bee06b9c953651daDerek Tan     *         not set.
790818631b679171ffb49eaa641bee06b9c953651daDerek Tan     */
79116a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov    String getLine1AlphaTagForDisplay(int subId, String callingPackage);
79286578cca383562c72751d747905280afdeb2bdfbShishir Agrawal
7933256601f5e4d94713f59e97b9d4912875c1bdcafJeff Sharkey    String[] getMergedSubscriberIds();
7943256601f5e4d94713f59e97b9d4912875c1bdcafJeff Sharkey
79586578cca383562c72751d747905280afdeb2bdfbShishir Agrawal    /**
796d2cfa92146ecfa5e00d4a3ce8e63b1a588845fe2Shishir Agrawal     * Override the operator branding for the current ICCID.
79786578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     *
798d2cfa92146ecfa5e00d4a3ce8e63b1a588845fe2Shishir Agrawal     * Once set, whenever the SIM is present in the device, the service
79986578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     * provider name (SPN) and the operator name will both be replaced by the
80086578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     * brand value input. To unset the value, the same function should be
80186578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     * called with a null brand value.
80286578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     *
80386578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     * <p>Requires Permission:
80486578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     *   {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}
80586578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     *  or has to be carrier app - see #hasCarrierPrivileges.
80686578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     *
80786578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     * @param brand The brand name to display/set.
80886578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     * @return true if the operation was executed correctly.
80986578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     */
810d2cfa92146ecfa5e00d4a3ce8e63b1a588845fe2Shishir Agrawal    boolean setOperatorBrandOverride(String brand);
8113099c831441e861328cd4965011c854e060ce56aSteven Liu
8123099c831441e861328cd4965011c854e060ce56aSteven Liu    /**
8135fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * Override the roaming indicator for the current ICCID.
8145fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     *
8155fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * Using this call, the carrier app (see #hasCarrierPrivileges) can override
8165fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * the platform's notion of a network operator being considered roaming or not.
8175fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * The change only affects the ICCID that was active when this call was made.
8185fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     *
8195fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * If null is passed as any of the input, the corresponding value is deleted.
8205fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     *
8215fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * <p>Requires that the caller have carrier privilege. See #hasCarrierPrivileges.
8225fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     *
8235fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * @param gsmRoamingList - List of MCCMNCs to be considered roaming for 3GPP RATs.
8245fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * @param gsmNonRoamingList - List of MCCMNCs to be considered not roaming for 3GPP RATs.
8255fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * @param cdmaRoamingList - List of SIDs to be considered roaming for 3GPP2 RATs.
8265fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * @param cdmaNonRoamingList - List of SIDs to be considered not roaming for 3GPP2 RATs.
8275fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * @return true if the operation was executed correctly.
8285fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     */
8295fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal    boolean setRoamingOverride(in List<String> gsmRoamingList,
8305fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal            in List<String> gsmNonRoamingList, in List<String> cdmaRoamingList,
8315fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal            in List<String> cdmaNonRoamingList);
8325fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal
8335fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal    /**
8343099c831441e861328cd4965011c854e060ce56aSteven Liu     * Returns the result and response from RIL for oem request
8353099c831441e861328cd4965011c854e060ce56aSteven Liu     *
8363099c831441e861328cd4965011c854e060ce56aSteven Liu     * @param oemReq the data is sent to ril.
8373099c831441e861328cd4965011c854e060ce56aSteven Liu     * @param oemResp the respose data from RIL.
8383099c831441e861328cd4965011c854e060ce56aSteven Liu     * @return negative value request was not handled or get error
8393099c831441e861328cd4965011c854e060ce56aSteven Liu     *         0 request was handled succesfully, but no response data
8403099c831441e861328cd4965011c854e060ce56aSteven Liu     *         positive value success, data length of response
8413099c831441e861328cd4965011c854e060ce56aSteven Liu     */
8423099c831441e861328cd4965011c854e060ce56aSteven Liu    int invokeOemRilRequestRaw(in byte[] oemReq, out byte[] oemResp);
843fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
844bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla    /**
845bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla     * Check if any mobile Radios need to be shutdown.
846bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla     *
847bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla     * @return true is any mobile radio needs to be shutdown
848bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla     */
849bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla    boolean needMobileRadioShutdown();
850bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla
851bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla    /**
852bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla     * Shutdown Mobile Radios
853bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla     */
854bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla    void shutdownMobileRadios();
8552af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville
8562af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville    /**
8572af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     * Set phone radio type and access technology.
8582af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     *
8592af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     * @param rafs an RadioAccessFamily array to indicate all phone's
8602af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     *        new radio access family. The length of RadioAccessFamily
8612af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     *        must equ]]al to phone count.
8622af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     */
8632af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville    void setRadioCapability(in RadioAccessFamily[] rafs);
8642af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville
8652af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville    /**
8662af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     * Get phone radio type and access technology.
8672af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     *
8682af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     * @param phoneId which phone you want to get
8692af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     * @return phone radio type and access technology
8702af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     */
8712af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville    int getRadioAccessFamily(in int phoneId);
8724a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee
8734a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee    /**
8744a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee     * Enables or disables video calling.
8754a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee     *
8764a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee     * @param enable Whether to enable video calling.
8774a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee     */
8784a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee    void enableVideoCalling(boolean enable);
8794a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee
8804a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee    /**
8814a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee     * Whether video calling has been enabled by the user.
8824a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee     *
88316a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov     * @param callingPackage The package making the call.
88467fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee     * @return {@code true} if the user has enabled video calling, {@code false} otherwise.
8854a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee     */
88616a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov    boolean isVideoCallingEnabled(String callingPackage);
8870b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe
8880303be4a8ac109e52b2581b7c6a94b27c581f84fLibin.Tang@motorola.com    /**
88967fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee     * Whether the DTMF tone length can be changed.
89067fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee     *
89167fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee     * @return {@code true} if the DTMF tone length can be changed.
89267fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee     */
89367fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee    boolean canChangeDtmfToneLength();
89467fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee
89567fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee    /**
89667fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee     * Whether the device is a world phone.
89767fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee     *
89867fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee     * @return {@code true} if the devices is a world phone.
89967fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee     */
90067fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee    boolean isWorldPhone();
90167fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee
90267fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee    /**
903f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee     * Whether the phone supports TTY mode.
904f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee     *
905f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee     * @return {@code true} if the device supports TTY mode.
906f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee     */
907f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee    boolean isTtyModeSupported();
908f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee
909f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee    /**
910f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee     * Whether the phone supports hearing aid compatibility.
911f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee     *
912f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee     * @return {@code true} if the device supports hearing aid compatibility.
913f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee     */
914f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee    boolean isHearingAidCompatibilitySupported();
915f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee
916f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee    /**
9170303be4a8ac109e52b2581b7c6a94b27c581f84fLibin.Tang@motorola.com     * Get IMS Registration Status
9180303be4a8ac109e52b2581b7c6a94b27c581f84fLibin.Tang@motorola.com     */
9190303be4a8ac109e52b2581b7c6a94b27c581f84fLibin.Tang@motorola.com    boolean isImsRegistered();
9200b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe
9210b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe    /**
92242eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold     * Returns the Status of Wi-Fi Calling
92342eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold     *@hide
92442eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold     */
92542eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold    boolean isWifiCallingEnabled();
92642eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold
92742eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold     /**
92842eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold     * Returns the Status of Volte
92942eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold     *@hide
93042eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold     */
93142eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold    boolean isVolteEnabled();
93242eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold
93342eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold    /**
9340b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe      * Returns the unique device ID of phone, for example, the IMEI for
9350b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe      * GSM and the MEID for CDMA phones. Return null if device ID is not available.
9360b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe      *
93716a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov      * @param callingPackage The package making the call.
9380b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe      * <p>Requires Permission:
9390b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe      *   {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
9400b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe      */
94116a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov    String getDeviceId(String callingPackage);
942ed4ca5ca2c40ed2c838aaf483fcd58abdfa0ff08Santos Cordon
943ed4ca5ca2c40ed2c838aaf483fcd58abdfa0ff08Santos Cordon    /**
944ed4ca5ca2c40ed2c838aaf483fcd58abdfa0ff08Santos Cordon     * Returns the subscription ID associated with the specified PhoneAccount.
945ed4ca5ca2c40ed2c838aaf483fcd58abdfa0ff08Santos Cordon     */
946ed4ca5ca2c40ed2c838aaf483fcd58abdfa0ff08Santos Cordon    int getSubIdForPhoneAccount(in PhoneAccount phoneAccount);
947f1fb39763d87dabe254b6ed64ac8f20145035bc0Stuart Scott
948f1fb39763d87dabe254b6ed64ac8f20145035bc0Stuart Scott    void factoryReset(int subId);
9497ff76d637f5ad49838e9d4a1570c762a187ed4d1Narayan Kamath
9507ff76d637f5ad49838e9d4a1570c762a187ed4d1Narayan Kamath    /**
9517ff76d637f5ad49838e9d4a1570c762a187ed4d1Narayan Kamath     * An estimate of the users's current locale based on the default SIM.
9527ff76d637f5ad49838e9d4a1570c762a187ed4d1Narayan Kamath     *
9537ff76d637f5ad49838e9d4a1570c762a187ed4d1Narayan Kamath     * The returned string will be a well formed BCP-47 language tag, or {@code null}
9547ff76d637f5ad49838e9d4a1570c762a187ed4d1Narayan Kamath     * if no locale could be derived.
9557ff76d637f5ad49838e9d4a1570c762a187ed4d1Narayan Kamath     */
9567ff76d637f5ad49838e9d4a1570c762a187ed4d1Narayan Kamath    String getLocaleFromDefaultSim();
9575c728994311c40821604c6711171e860776659a6Prerepa Viswanadham
9585c728994311c40821604c6711171e860776659a6Prerepa Viswanadham    /**
9595c728994311c40821604c6711171e860776659a6Prerepa Viswanadham     * Return the modem activity info.
9605c728994311c40821604c6711171e860776659a6Prerepa Viswanadham     *@hide
9615c728994311c40821604c6711171e860776659a6Prerepa Viswanadham     */
9625c728994311c40821604c6711171e860776659a6Prerepa Viswanadham    ModemActivityInfo getModemActivityInfo();
963bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla}
964