ITelephony.aidl revision 9bc8299ca0b2e8396b9f2f027c440cda164ba75e
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;
27d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawalimport com.android.internal.telephony.CellNetworkScanResult;
28d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawalimport com.android.internal.telephony.OperatorInfo;
29a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawalimport java.util.List;
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
31aae9216320328e6b865725219a31a029ea46c1b0Sailesh Nepal
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
33767a662ecde33c3979bf02b793d392aca0403162Wink Saville * Interface used to interact with the phone.  Mostly this is used by the
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * TelephonyManager class.  A few places are still using this directly.
354a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee * Please clean them up if possible and use TelephonyManager instead.
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@hide}
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinterface ITelephony {
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Dial a number. This doesn't place the call. It displays
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the Dialer screen.
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param number the number to be dialed. If null, this
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * would display the Dialer screen with no number pre-filled.
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void dial(String number);
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Place a call to the specified number.
5116a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov     * @param callingPackage The package making the call.
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param number the number to be called.
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
54f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn    void call(String callingPackage, String number);
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
574d396052deb54399cbadbeb8abd873df6f3af342Jeff Brown     * End call if there is a call in progress, otherwise does nothing.
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return whether it hung up
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean endCall();
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
64fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * End call on particular subId or go to the Home screen
65fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
66fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return whether it hung up
67fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
6863f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    boolean endCallForSubscriber(int subId);
69fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
70fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Answer the currently-ringing call.
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If there's already a current active call, that call will be
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * automatically put on hold.  If both lines are currently in use, the
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * current active call will be ended.
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * TODO: provide a flag to let the caller specify what policy to use
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * if both lines are in use.  (The current behavior is hardwired to
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * "answer incoming, end ongoing", which is how the CALL button
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * is specced to behave.)
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * TODO: this should be a oneway call (especially since it's called
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * directly from the key queue thread).
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void answerRingingCall();
869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
8805e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * Answer the currently-ringing call on particular subId .
8905e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     *
9005e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * If there's already a current active call, that call will be
9105e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * automatically put on hold.  If both lines are currently in use, the
9205e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * current active call will be ended.
9305e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     *
9405e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * TODO: provide a flag to let the caller specify what policy to use
9505e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * if both lines are in use.  (The current behavior is hardwired to
9605e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * "answer incoming, end ongoing", which is how the CALL button
9705e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * is specced to behave.)
9805e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     *
9905e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * TODO: this should be a oneway call (especially since it's called
10005e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * directly from the key queue thread).
10105e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     */
10263f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    void answerRingingCallForSubscriber(int subId);
10305e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville
10405e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville    /**
1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Silence the ringer if an incoming call is currently ringing.
1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (If vibrating, stop the vibrator also.)
1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * It's safe to call this if the ringer has already been silenced, or
1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * even if there's no incoming call.  (If so, this method will do nothing.)
1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * TODO: this should be a oneway call too (see above).
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *       (Actually *all* the methods here that return void can
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *       probably be oneway.)
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void silenceRinger();
1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check if we are in either an active or holding call
1196e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage the name of the package making the call.
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the phone state is OFFHOOK.
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1226e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    boolean isOffhook(String callingPackage);
1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
125fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Check if a particular subId has an active or holding call
126fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *
127fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
1286e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage the name of the package making the call.
129fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return true if the phone state is OFFHOOK.
130fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
1316e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    boolean isOffhookForSubscriber(int subId, String callingPackage);
132fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
133fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
134fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Check if an incoming phone call is ringing or call waiting
135fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * on a particular subId.
136fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *
137fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
1386e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage the name of the package making the call.
139fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return true if the phone state is RINGING.
140fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
1416e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    boolean isRingingForSubscriber(int subId, String callingPackage);
142fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
143fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check if an incoming phone call is ringing or call waiting.
1456e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage the name of the package making the call.
1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the phone state is RINGING.
1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1486e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    boolean isRinging(String callingPackage);
1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check if the phone is idle.
1526e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage the name of the package making the call.
1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the phone state is IDLE.
1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1556e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    boolean isIdle(String callingPackage);
1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
158fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Check if the phone is idle on a particular subId.
159fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *
160fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
1616e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage the name of the package making the call.
162fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return true if the phone state is IDLE.
163fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
1646e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    boolean isIdleForSubscriber(int subId, String callingPackage);
165fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
166fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check to see if the radio is on or not.
1686e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage the name of the package making the call.
1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return returns true if the radio is on.
1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1716e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    boolean isRadioOn(String callingPackage);
1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
174fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Check to see if the radio is on or not on particular subId.
175fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
1766e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage the name of the package making the call.
177fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return returns true if the radio is on.
178fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
1796e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    boolean isRadioOnForSubscriber(int subId, String callingPackage);
180fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
181fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check if the SIM pin lock is enabled.
1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the SIM pin lock is enabled.
18416a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov     * @param callingPackage The package making the call.
1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
18616a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov    boolean isSimPinEnabled(String callingPackage);
1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Supply a pin to unlock the SIM.  Blocks until a result is determined.
1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param pin The pin to check.
1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return whether the operation was a success.
1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean supplyPin(String pin);
1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
196fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Supply a pin to unlock the SIM for particular subId.
197fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Blocks until a result is determined.
198fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param pin The pin to check.
199fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
200fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return whether the operation was a success.
201fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
20263f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    boolean supplyPinForSubscriber(int subId, String pin);
203fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
204fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
20598c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     * Supply puk to unlock the SIM and set SIM pin to new pin.
20698c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     *  Blocks until a result is determined.
20798c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     * @param puk The puk to check.
20898c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     *        pin The new pin to be set in SIM
20998c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     * @return whether the operation was a success.
21098c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     */
21198c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang    boolean supplyPuk(String puk, String pin);
21298c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang
21398c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang    /**
214fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Supply puk to unlock the SIM and set SIM pin to new pin.
215fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *  Blocks until a result is determined.
216fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param puk The puk to check.
217fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *        pin The new pin to be set in SIM
218fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
219fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return whether the operation was a success.
220fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
22163f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    boolean supplyPukForSubscriber(int subId, String puk, String pin);
222fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
223fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
224b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Supply a pin to unlock the SIM.  Blocks until a result is determined.
225b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Returns a specific success/error code.
226b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * @param pin The pin to check.
227b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code
228b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     *         retValue[1] = number of attempts remaining if known otherwise -1
229b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     */
230b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville    int[] supplyPinReportResult(String pin);
231b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville
232b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville    /**
233fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Supply a pin to unlock the SIM.  Blocks until a result is determined.
234fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns a specific success/error code.
235fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param pin The pin to check.
236fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code
237fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *         retValue[1] = number of attempts remaining if known otherwise -1
238fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
23963f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    int[] supplyPinReportResultForSubscriber(int subId, String pin);
240fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
241fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
242b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Supply puk to unlock the SIM and set SIM pin to new pin.
243b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Blocks until a result is determined.
244b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Returns a specific success/error code
245b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * @param puk The puk to check
246b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     *        pin The pin to check.
247b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code
248b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     *         retValue[1] = number of attempts remaining if known otherwise -1
249b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     */
250b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville    int[] supplyPukReportResult(String puk, String pin);
251b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville
252b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville    /**
253fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Supply puk to unlock the SIM and set SIM pin to new pin.
254fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Blocks until a result is determined.
255fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns a specific success/error code
256fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param puk The puk to check
257fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *        pin The pin to check.
258fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code
259fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *         retValue[1] = number of attempts remaining if known otherwise -1
260fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
26163f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    int[] supplyPukReportResultForSubscriber(int subId, String puk, String pin);
262fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
263fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Handles PIN MMI commands (PIN/PIN2/PUK/PUK2), which are initiated
2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * without SEND (so <code>dial</code> is not appropriate).
266767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param dialString the MMI command to be executed.
2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if MMI command is executed.
2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean handlePinMmi(String dialString);
2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
273fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Handles PIN MMI commands (PIN/PIN2/PUK/PUK2), which are initiated
274fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * without SEND (so <code>dial</code> is not appropriate) for
275fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * a particular subId.
276fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param dialString the MMI command to be executed.
277fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
278fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return true if MMI command is executed.
279fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
28063f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    boolean handlePinMmiForSubscriber(int subId, String dialString);
281fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
282fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Toggles the radio on or off.
2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void toggleRadioOnOff();
2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
288fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Toggles the radio on or off on particular subId.
289fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
290fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
29163f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    void toggleRadioOnOffForSubscriber(int subId);
292fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
293fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Set the radio to on or off
2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean setRadio(boolean turnOn);
2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
299fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Set the radio to on or off on particular subId.
300fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
301fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
30263f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    boolean setRadioForSubscriber(int subId, boolean turnOn);
303fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
304fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
30545ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville     * Set the radio to on or off unconditionally
30645ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville     */
30745ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville    boolean setRadioPower(boolean turnOn);
30845ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville
30945ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville    /**
3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Request to update location information in service state
3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void updateServiceLocation();
3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
315fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Request to update location information for a subscrition in service state
316fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
317fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
31863f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    void updateServiceLocationForSubscriber(int subId);
319fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
320fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Enable location update notifications.
3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void enableLocationUpdates();
3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
326fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Enable location update notifications.
327fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
328fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
32963f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    void enableLocationUpdatesForSubscriber(int subId);
330fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
331fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Disable location update notifications.
3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void disableLocationUpdates();
3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
337fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Disable location update notifications.
338fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
339fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
34063f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    void disableLocationUpdatesForSubscriber(int subId);
341fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
342fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Allow mobile data connections.
3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean enableDataConnectivity();
3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Disallow mobile data connections.
3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean disableDataConnectivity();
3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Report whether data connectivity is possible.
3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isDataConnectivityPossible();
3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
357275b5635ad98a411d511894e98f80e8b8bc41799Svetoslav    Bundle getCellLocation(String callingPkg);
3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the neighboring cell information of the device.
3619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
362f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn    List<NeighboringCellInfo> getNeighboringCellInfo(String callingPkg);
3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     int getCallState();
365fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
366fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
367fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the call state for a subId.
368fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
36963f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville     int getCallStateForSubscriber(int subId);
370fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     int getDataActivity();
3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     int getDataState();
373767a662ecde33c3979bf02b793d392aca0403162Wink Saville
374767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
375767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Returns the current active phone type as integer.
376767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Returns TelephonyManager.PHONE_TYPE_CDMA if RILConstants.CDMA_PHONE
377767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * and TelephonyManager.PHONE_TYPE_GSM if RILConstants.GSM_PHONE
378767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
379767a662ecde33c3979bf02b793d392aca0403162Wink Saville    int getActivePhoneType();
380767a662ecde33c3979bf02b793d392aca0403162Wink Saville
381e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
382fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the current active phone type as integer for particular subId.
383fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns TelephonyManager.PHONE_TYPE_CDMA if RILConstants.CDMA_PHONE
384fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * and TelephonyManager.PHONE_TYPE_GSM if RILConstants.GSM_PHONE
385fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
386fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
38763f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    int getActivePhoneTypeForSubscriber(int subId);
388fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
389fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
390e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Returns the CDMA ERI icon index to display
3916e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage package making the call.
392e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
3936e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    int getCdmaEriIconIndex(String callingPackage);
394e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
395e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
396fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the CDMA ERI icon index to display on particular subId.
397fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
3986e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage package making the call.
399fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
4006e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    int getCdmaEriIconIndexForSubscriber(int subId, String callingPackage);
401fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
402fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
403e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Returns the CDMA ERI icon mode,
404e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * 0 - ON
405e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * 1 - FLASHING
4066e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage package making the call.
407e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
4086e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    int getCdmaEriIconMode(String callingPackage);
409e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
410e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
411fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the CDMA ERI icon mode on particular subId,
412fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * 0 - ON
413fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * 1 - FLASHING
414fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
4156e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage package making the call.
416fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
4176e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    int getCdmaEriIconModeForSubscriber(int subId, String callingPackage);
418fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
419fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
420e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Returns the CDMA ERI text,
4216e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage package making the call.
422e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
4236e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    String getCdmaEriText(String callingPackage);
424e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
425dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
426fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the CDMA ERI text for particular subId,
427fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
4286e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage package making the call.
429fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
4306e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    String getCdmaEriTextForSubscriber(int subId, String callingPackage);
431fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
432fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
4334d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville     * Returns true if OTA service provisioning needs to run.
4344d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville     * Only relevant on some technologies, others will always
4354d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville     * return false.
436767be5f0b929cc1eeb8a7d5aa7a02e228053e9bbJim Miller     */
4374d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville    boolean needsOtaServiceProvisioning();
438767be5f0b929cc1eeb8a7d5aa7a02e228053e9bbJim Miller
439767be5f0b929cc1eeb8a7d5aa7a02e228053e9bbJim Miller    /**
4405c1a63c2235c36ce0b520fa88a9d21ffe255756eShishir Agrawal     * Sets the voicemail number for a particular subscriber.
4415c1a63c2235c36ce0b520fa88a9d21ffe255756eShishir Agrawal     */
4425c1a63c2235c36ce0b520fa88a9d21ffe255756eShishir Agrawal    boolean setVoiceMailNumber(int subId, String alphaTag, String number);
4435c1a63c2235c36ce0b520fa88a9d21ffe255756eShishir Agrawal
4445c1a63c2235c36ce0b520fa88a9d21ffe255756eShishir Agrawal    /**
445dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville      * Returns the unread count of voicemails
446dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville      */
447ce099c3226b33b43e0dd5d1f24347b14a2223ee1David Krause    int getVoiceMessageCount();
448dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
449ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe    /**
450fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the unread count of voicemails for a subId.
451fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
452fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the unread count of voicemails
453fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
45463f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    int getVoiceMessageCountForSubscriber(int subId);
455fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
456fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
4576e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * Returns the network type for data transmission
4589bc8299ca0b2e8396b9f2f027c440cda164ba75eRobert Greenwalt     * Legacy call, permission-free
4596e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     */
4609bc8299ca0b2e8396b9f2f027c440cda164ba75eRobert Greenwalt    int getNetworkType();
46198c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang
462e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville    /**
463fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the network type of a subId.
464fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
4656e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage package making the call.
466fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
4676e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    int getNetworkTypeForSubscriber(int subId, String callingPackage);
468fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
469fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
4706e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * Returns the network type for data transmission
4716e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage package making the call.
4726e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     */
4736e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    int getDataNetworkType(String callingPackage);
4740dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville
4750dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville    /**
4766e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * Returns the data network type of a subId
4776e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param subId user preferred subId.
4786e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage package making the call.
4796e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     */
4806e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    int getDataNetworkTypeForSubscriber(int subId, String callingPackage);
481fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
482fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
483fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      * Returns the voice network type of a subId
484fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      * @param subId user preferred subId.
4859bc8299ca0b2e8396b9f2f027c440cda164ba75eRobert Greenwalt      * @param callingPackage package making the call.
486fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      * Returns the network type
487fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      */
4889bc8299ca0b2e8396b9f2f027c440cda164ba75eRobert Greenwalt    int getVoiceNetworkTypeForSubscriber(int subId, String callingPackage);
489fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
490fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
491e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville     * Return true if an ICC card is present
492e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville     */
493e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville    boolean hasIccCard();
4945e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville
4955e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville    /**
496fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Return true if an ICC card is present for a subId.
497fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param slotId user preferred slotId.
498fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Return true if an ICC card is present
499fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
50063f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    boolean hasIccCardUsingSlotId(int slotId);
501fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
502fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
5035e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * Return if the current radio is LTE on CDMA. This
5045e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * is a tri-state return value as for a period of time
5055e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * the mode may be unknown.
5065e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     *
5076e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage the name of the calling package
5085e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * @return {@link Phone#LTE_ON_CDMA_UNKNOWN}, {@link Phone#LTE_ON_CDMA_FALSE}
5095e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * or {@link PHone#LTE_ON_CDMA_TRUE}
5105e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     */
5116e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    int getLteOnCdmaMode(String callingPackage);
512963db55d59a170f4b17ff907c96615a19ef6fe17John Wang
513963db55d59a170f4b17ff907c96615a19ef6fe17John Wang    /**
514fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Return if the current radio is LTE on CDMA. This
515fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * is a tri-state return value as for a period of time
516fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * the mode may be unknown.
517fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *
5186e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage the name of the calling package
519fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return {@link Phone#LTE_ON_CDMA_UNKNOWN}, {@link Phone#LTE_ON_CDMA_FALSE}
520fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * or {@link PHone#LTE_ON_CDMA_TRUE}
521fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
5226e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    int getLteOnCdmaModeForSubscriber(int subId, String callingPackage);
523fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
524fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
525963db55d59a170f4b17ff907c96615a19ef6fe17John Wang     * Returns the all observed cell information of the device.
526963db55d59a170f4b17ff907c96615a19ef6fe17John Wang     */
527275b5635ad98a411d511894e98f80e8b8bc41799Svetoslav    List<CellInfo> getAllCellInfo(String callingPkg);
528094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville
529094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville    /**
530094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville     * Sets minimum time in milli-seconds between onCellInfoChanged
531094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville     */
532094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville    void setCellInfoListRate(int rateInMillis);
533767a662ecde33c3979bf02b793d392aca0403162Wink Saville
53457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal    /**
535fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * get default sim
536fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return sim id
537fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
538fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int getDefaultSim();
539fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
540fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
54157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Opens a logical channel to the ICC card.
54257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
54357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Input parameters equivalent to TS 27.007 AT+CCHO command.
54457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
54557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param AID Application id. See ETSI 102.221 and 101.220.
546a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @return an IccOpenLogicalChannelResponse object.
54757f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     */
548a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal    IccOpenLogicalChannelResponse iccOpenLogicalChannel(String AID);
54957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal
55057f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal    /**
55157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Closes a previously opened logical channel to the ICC card.
55257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
55357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Input parameters equivalent to TS 27.007 AT+CCHC command.
55457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
55557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param channel is the channel id to be closed as retruned by a
55657f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *            successful iccOpenLogicalChannel.
55757f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @return true if the channel was closed successfully.
55857f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     */
55957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal    boolean iccCloseLogicalChannel(int channel);
56057f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal
56157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal    /**
56257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Transmit an APDU to the ICC card over a logical channel.
56357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
56457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Input parameters equivalent to TS 27.007 AT+CGLA command.
56557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
56657f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param channel is the channel id to be closed as retruned by a
56757f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *            successful iccOpenLogicalChannel.
56857f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param cla Class of the APDU command.
56957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param instruction Instruction of the APDU command.
57057f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param p1 P1 value of the APDU command.
57157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param p2 P2 value of the APDU command.
57257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param p3 P3 value of the APDU command. If p3 is negative a 4 byte APDU
57357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *            is sent to the SIM.
57457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param data Data to be sent with the APDU.
57557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @return The APDU response from the ICC card with the status appended at
57643d94347a6feb14870a4ffd7682a816210e5e676Shishir Agrawal     *            the end.
57757f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     */
578375890841df7aad36a042861f6a70f11e1f32766Shishir Agrawal    String iccTransmitApduLogicalChannel(int channel, int cla, int instruction,
57957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal            int p1, int p2, int p3, String data);
5808f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
5818f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    /**
582a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * Transmit an APDU to the ICC card over the basic channel.
583a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     *
584a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * Input parameters equivalent to TS 27.007 AT+CSIM command.
585a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     *
586a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param cla Class of the APDU command.
587a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param instruction Instruction of the APDU 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. If p3 is negative a 4 byte APDU
591a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     *            is sent to the SIM.
592a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param data Data to be sent with the APDU.
593a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @return The APDU response from the ICC card with the status appended at
59443d94347a6feb14870a4ffd7682a816210e5e676Shishir Agrawal     *            the end.
595a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     */
596a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal    String iccTransmitApduBasicChannel(int cla, int instruction,
597a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal            int p1, int p2, int p3, String data);
598a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal
599a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal    /**
600a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * Returns the response APDU for a command APDU sent through SIM_IO.
601a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     *
602a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param fileID
603a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param command
604a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param p1 P1 value of the APDU command.
605a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param p2 P2 value of the APDU command.
606a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param p3 P3 value of the APDU command.
607a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param filePath
608a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @return The APDU response.
609a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     */
610a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal    byte[] iccExchangeSimIO(int fileID, int command, int p1, int p2, int p3,
611a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal            String filePath);
612a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal
613a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal    /**
614b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton     * Send ENVELOPE to the SIM and returns the response.
615210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton     *
616210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton     * @param contents  String containing SAT/USAT response in hexadecimal
617210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton     *                  format starting with command tag. See TS 102 223 for
618210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton     *                  details.
619b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton     * @return The APDU response from the ICC card, with the last 4 bytes
620b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton     *         being the status word. If the command fails, returns an empty
621b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton     *         string.
622210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton     */
623b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton    String sendEnvelopeWithStatus(String content);
624210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton
625210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton    /**
6268f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Read one of the NV items defined in {@link RadioNVItems} / {@code ril_nv_items.h}.
6278f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Used for device configuration by some CDMA operators.
6288f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     *
6298f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param itemID the ID of the item to read.
6308f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @return the NV item as a String, or null on any failure.
6318f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     */
6328f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    String nvReadItem(int itemID);
6338f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
6348f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    /**
6358f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Write one of the NV items defined in {@link RadioNVItems} / {@code ril_nv_items.h}.
6368f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Used for device configuration by some CDMA operators.
6378f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     *
6388f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param itemID the ID of the item to read.
6398f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param itemValue the value to write, as a String.
6408f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @return true on success; false on any failure.
6418f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     */
6428f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    boolean nvWriteItem(int itemID, String itemValue);
6438f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
6448f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    /**
6458f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Update the CDMA Preferred Roaming List (PRL) in the radio NV storage.
6468f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Used for device configuration by some CDMA operators.
6478f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     *
6488f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param preferredRoamingList byte array containing the new PRL.
6498f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @return true on success; false on any failure.
6508f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     */
6518f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    boolean nvWriteCdmaPrl(in byte[] preferredRoamingList);
6528f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
6538f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    /**
654786e71ab11f2d89afffc9db7473f16206395c813Jake Hamby     * Perform the specified type of NV config reset. The radio will be taken offline
655786e71ab11f2d89afffc9db7473f16206395c813Jake Hamby     * and the device must be rebooted after the operation. Used for device
656786e71ab11f2d89afffc9db7473f16206395c813Jake Hamby     * configuration by some CDMA operators.
6578f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     *
6588f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param resetType the type of reset to perform (1 == factory reset; 2 == NV-only reset).
6598f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @return true on success; false on any failure.
6608f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     */
6618f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    boolean nvResetConfig(int resetType);
6628f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
6639bbb37116d2c5b597f9b5e3094ff328971e03c0bEvan Charlton    /*
6641365703d4964466472904dc84117a0946d9e1a44Junda Liu     * Get the calculated preferred network type.
6651365703d4964466472904dc84117a0946d9e1a44Junda Liu     * Used for device configuration by some CDMA operators.
66616a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov     * @param callingPackage The package making the call.
6671365703d4964466472904dc84117a0946d9e1a44Junda Liu     *
6681365703d4964466472904dc84117a0946d9e1a44Junda Liu     * @return the calculated preferred network type, defined in RILConstants.java.
6691365703d4964466472904dc84117a0946d9e1a44Junda Liu     */
67016a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov    int getCalculatedPreferredNetworkType(String callingPackage);
6711365703d4964466472904dc84117a0946d9e1a44Junda Liu
6721365703d4964466472904dc84117a0946d9e1a44Junda Liu    /*
6734a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * Get the preferred network type.
6744a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * Used for device configuration by some CDMA operators.
6754a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     *
676984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott     * @param subId the id of the subscription to query.
6774a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * @return the preferred network type, defined in RILConstants.java.
6784a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     */
679984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott    int getPreferredNetworkType(int subId);
6804a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby
6814a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby    /**
68238531581fc19f9172fabe56047b326e5dab88625Junda Liu     * Check TETHER_DUN_REQUIRED and TETHER_DUN_APN settings, net.tethering.noprovisioning
68338531581fc19f9172fabe56047b326e5dab88625Junda Liu     * SystemProperty, and config_tether_apndata to decide whether DUN APN is required for
68438531581fc19f9172fabe56047b326e5dab88625Junda Liu     * tethering.
68538531581fc19f9172fabe56047b326e5dab88625Junda Liu     *
68638531581fc19f9172fabe56047b326e5dab88625Junda Liu     * @return 0: Not required. 1: required. 2: Not set.
68738531581fc19f9172fabe56047b326e5dab88625Junda Liu     */
68838531581fc19f9172fabe56047b326e5dab88625Junda Liu    int getTetherApnRequired();
68938531581fc19f9172fabe56047b326e5dab88625Junda Liu
69038531581fc19f9172fabe56047b326e5dab88625Junda Liu    /**
691984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott     * Set the network selection mode to automatic.
692984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott     *
693984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott     * @param subId the id of the subscription to update.
694984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott     */
695984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott    void setNetworkSelectionModeAutomatic(int subId);
696984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott
697984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott    /**
698d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal     * Perform a radio scan and return the list of avialble networks.
699d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal     *
700d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal     * @param subId the id of the subscription.
701d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal     * @return CellNetworkScanResult containing status of scan and networks.
702d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal     */
703d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal    CellNetworkScanResult getCellNetworkScanResults(int subId);
704d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal
705d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal    /**
706d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal     * Ask the radio to connect to the input network and change selection mode to manual.
707d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal     *
708d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal     * @param subId the id of the subscription.
709d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal     * @param operatorInfo the operator to attach to.
710d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal     * @return true if the request suceeded.
711d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal     */
712d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal    boolean setNetworkSelectionModeManual(int subId, in OperatorInfo operator);
713d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal
714d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal    /**
7154a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * Set the preferred network type.
7164a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * Used for device configuration by some CDMA operators.
7174a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     *
718984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott     * @param subId the id of the subscription to update.
7194a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * @param networkType the preferred network type, defined in RILConstants.java.
7204a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * @return true on success; false on any failure.
7214a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     */
722984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott    boolean setPreferredNetworkType(int subId, int networkType);
723afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt
724afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt    /**
725afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     * User enable/disable Mobile Data.
726afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     *
727afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     * @param enable true to turn on, else false
728afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     */
72936ffb0494dd1045c164b7479b68165e206f8c759Wink Saville    void setDataEnabled(int subId, boolean enable);
730afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt
731afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt    /**
732afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     * Get the user enabled state of Mobile Data.
733afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     *
734afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     * @return true on enabled
735afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     */
73636ffb0494dd1045c164b7479b68165e206f8c759Wink Saville    boolean getDataEnabled(int subId);
737fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
738fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
739fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Get P-CSCF address from PCO after data connection is established or modified.
740e647099e14114475e9a2827a10dab2d2e36308c4ram     * @param apnType the apnType, "ims" for IMS APN, "emergency" for EMERGENCY APN
74116a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov     * @param callingPackage The package making the call.
742fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
74316a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov    String[] getPcscfAddress(String apnType, String callingPackage);
744fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
745fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
746fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Set IMS registration state
747fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
748fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    void setImsRegistrationState(boolean registered);
749fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
750762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal    /**
7512b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu     * Return MDN string for CDMA phone.
7522b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu     * @param subId user preferred subId.
7532b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu     */
75463f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    String getCdmaMdn(int subId);
7552b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu
7562b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu    /**
7572b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu     * Return MIN string for CDMA phone.
7582b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu     * @param subId user preferred subId.
7592b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu     */
76063f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    String getCdmaMin(int subId);
7612b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu
7622b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu    /**
763762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     * Has the calling application been granted special privileges by the carrier.
764762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     *
765762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     * If any of the packages in the calling UID has carrier privileges, the
766762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     * call will return true. This access is granted by the owner of the UICC
767762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     * card and does not depend on the registered carrier.
768762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     *
769762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     * TODO: Add a link to documentation.
770762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     *
771fc3646f58e5851e7a483b8388bdd826078166d10Shishir Agrawal     * @return carrier privilege status defined in TelephonyManager.
772762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     */
773ab57c29092eb9185375de86d82ff32e6079f5cecShishir Agrawal    int getCarrierPrivilegeStatus();
774142529702dad9a6612271f487d500db80173ba7bJunda Liu
775142529702dad9a6612271f487d500db80173ba7bJunda Liu    /**
776b4b9ca7580c75f07330e5222cbd9ccc93b12935eZach Johnson     * Similar to above, but check for the package whose name is pkgName.
777142529702dad9a6612271f487d500db80173ba7bJunda Liu     */
778b4b9ca7580c75f07330e5222cbd9ccc93b12935eZach Johnson    int checkCarrierPrivilegesForPackage(String pkgName);
779b4b9ca7580c75f07330e5222cbd9ccc93b12935eZach Johnson
780b4b9ca7580c75f07330e5222cbd9ccc93b12935eZach Johnson    /**
781b4b9ca7580c75f07330e5222cbd9ccc93b12935eZach Johnson     * Similar to above, but check across all phones.
782b4b9ca7580c75f07330e5222cbd9ccc93b12935eZach Johnson     */
783b4b9ca7580c75f07330e5222cbd9ccc93b12935eZach Johnson    int checkCarrierPrivilegesForPackageAnyPhone(String pkgName);
784f9aefdb534c6cb2af22dfb7614a1c15c2d67dd9cDerek Tan
785f9aefdb534c6cb2af22dfb7614a1c15c2d67dd9cDerek Tan    /**
786f3c7bf432dc5c21fdecbb44865c037313d21b4cfJunda Liu     * Returns list of the package names of the carrier apps that should handle the input intent
787f3c7bf432dc5c21fdecbb44865c037313d21b4cfJunda Liu     * and have carrier privileges for the given phoneId.
78863c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal     *
7893892fc0349a91097f53152eaf2801dfebb2066caDiego Pontoriero     * @param intent Intent that will be sent.
790f3c7bf432dc5c21fdecbb44865c037313d21b4cfJunda Liu     * @param phoneId The phoneId on which the carrier app has carrier privileges.
791f3c7bf432dc5c21fdecbb44865c037313d21b4cfJunda Liu     * @return list of carrier app package names that can handle the intent on phoneId.
79263c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal     *         Returns null if there is an error and an empty list if there
79363c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal     *         are no matching packages.
79463c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal     */
795f3c7bf432dc5c21fdecbb44865c037313d21b4cfJunda Liu    List<String> getCarrierPackageNamesForIntentAndPhone(in Intent intent, int phoneId);
79663c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal
79763c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal    /**
7982bae510ccef2da7dd767f8148d4e3539037f4aaaDerek Tan     * Set the line 1 phone number string and its alphatag for the current ICCID
7992bae510ccef2da7dd767f8148d4e3539037f4aaaDerek Tan     * for display purpose only, for example, displayed in Phone Status. It won't
8002bae510ccef2da7dd767f8148d4e3539037f4aaaDerek Tan     * change the actual MSISDN/MDN. To unset alphatag or number, pass in a null
8012bae510ccef2da7dd767f8148d4e3539037f4aaaDerek Tan     * value.
802818631b679171ffb49eaa641bee06b9c953651daDerek Tan     *
803818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * @param subId the subscriber that the alphatag and dialing number belongs to.
804818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * @param alphaTag alpha-tagging of the dailing nubmer
805818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * @param number The dialing number
8060201a6f6f16a872405a5f9ee65026e948eb162d0Shishir Agrawal     * @return true if the operation was executed correctly.
807818631b679171ffb49eaa641bee06b9c953651daDerek Tan     */
8080201a6f6f16a872405a5f9ee65026e948eb162d0Shishir Agrawal    boolean setLine1NumberForDisplayForSubscriber(int subId, String alphaTag, String number);
809818631b679171ffb49eaa641bee06b9c953651daDerek Tan
810818631b679171ffb49eaa641bee06b9c953651daDerek Tan    /**
811818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * Returns the displayed dialing number string if it was set previously via
812818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * {@link #setLine1NumberForDisplay}. Otherwise returns null.
813818631b679171ffb49eaa641bee06b9c953651daDerek Tan     *
814818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * @param subId whose dialing number for line 1 is returned.
81516a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov     * @param callingPackage The package making the call.
816818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * @return the displayed dialing number if set, or null if not set.
817818631b679171ffb49eaa641bee06b9c953651daDerek Tan     */
81816a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov    String getLine1NumberForDisplay(int subId, String callingPackage);
819818631b679171ffb49eaa641bee06b9c953651daDerek Tan
820818631b679171ffb49eaa641bee06b9c953651daDerek Tan    /**
821818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * Returns the displayed alphatag of the dialing number if it was set
822818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * previously via {@link #setLine1NumberForDisplay}. Otherwise returns null.
823818631b679171ffb49eaa641bee06b9c953651daDerek Tan     *
824818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * @param subId whose alphatag associated with line 1 is returned.
82516a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov     * @param callingPackage The package making the call.
826818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * @return the displayed alphatag of the dialing number if set, or null if
827818631b679171ffb49eaa641bee06b9c953651daDerek Tan     *         not set.
828818631b679171ffb49eaa641bee06b9c953651daDerek Tan     */
82916a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov    String getLine1AlphaTagForDisplay(int subId, String callingPackage);
83086578cca383562c72751d747905280afdeb2bdfbShishir Agrawal
831d24e4eafdb3e42de5a8fd080fcd50ebf4c7bcb71Fyodor Kupolov    String[] getMergedSubscriberIds(String callingPackage);
8323256601f5e4d94713f59e97b9d4912875c1bdcafJeff Sharkey
83386578cca383562c72751d747905280afdeb2bdfbShishir Agrawal    /**
834d2cfa92146ecfa5e00d4a3ce8e63b1a588845fe2Shishir Agrawal     * Override the operator branding for the current ICCID.
83586578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     *
836d2cfa92146ecfa5e00d4a3ce8e63b1a588845fe2Shishir Agrawal     * Once set, whenever the SIM is present in the device, the service
83786578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     * provider name (SPN) and the operator name will both be replaced by the
83886578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     * brand value input. To unset the value, the same function should be
83986578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     * called with a null brand value.
84086578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     *
84186578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     * <p>Requires Permission:
84286578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     *   {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}
84386578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     *  or has to be carrier app - see #hasCarrierPrivileges.
84486578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     *
84586578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     * @param brand The brand name to display/set.
84686578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     * @return true if the operation was executed correctly.
84786578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     */
848d2cfa92146ecfa5e00d4a3ce8e63b1a588845fe2Shishir Agrawal    boolean setOperatorBrandOverride(String brand);
8493099c831441e861328cd4965011c854e060ce56aSteven Liu
8503099c831441e861328cd4965011c854e060ce56aSteven Liu    /**
8515fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * Override the roaming indicator for the current ICCID.
8525fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     *
8535fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * Using this call, the carrier app (see #hasCarrierPrivileges) can override
8545fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * the platform's notion of a network operator being considered roaming or not.
8555fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * The change only affects the ICCID that was active when this call was made.
8565fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     *
8575fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * If null is passed as any of the input, the corresponding value is deleted.
8585fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     *
8595fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * <p>Requires that the caller have carrier privilege. See #hasCarrierPrivileges.
8605fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     *
8615fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * @param gsmRoamingList - List of MCCMNCs to be considered roaming for 3GPP RATs.
8625fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * @param gsmNonRoamingList - List of MCCMNCs to be considered not roaming for 3GPP RATs.
8635fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * @param cdmaRoamingList - List of SIDs to be considered roaming for 3GPP2 RATs.
8645fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * @param cdmaNonRoamingList - List of SIDs to be considered not roaming for 3GPP2 RATs.
8655fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * @return true if the operation was executed correctly.
8665fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     */
8675fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal    boolean setRoamingOverride(in List<String> gsmRoamingList,
8685fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal            in List<String> gsmNonRoamingList, in List<String> cdmaRoamingList,
8695fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal            in List<String> cdmaNonRoamingList);
8705fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal
8715fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal    /**
8723099c831441e861328cd4965011c854e060ce56aSteven Liu     * Returns the result and response from RIL for oem request
8733099c831441e861328cd4965011c854e060ce56aSteven Liu     *
8743099c831441e861328cd4965011c854e060ce56aSteven Liu     * @param oemReq the data is sent to ril.
8753099c831441e861328cd4965011c854e060ce56aSteven Liu     * @param oemResp the respose data from RIL.
8763099c831441e861328cd4965011c854e060ce56aSteven Liu     * @return negative value request was not handled or get error
8773099c831441e861328cd4965011c854e060ce56aSteven Liu     *         0 request was handled succesfully, but no response data
8783099c831441e861328cd4965011c854e060ce56aSteven Liu     *         positive value success, data length of response
8793099c831441e861328cd4965011c854e060ce56aSteven Liu     */
8803099c831441e861328cd4965011c854e060ce56aSteven Liu    int invokeOemRilRequestRaw(in byte[] oemReq, out byte[] oemResp);
881fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
882bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla    /**
883bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla     * Check if any mobile Radios need to be shutdown.
884bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla     *
885bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla     * @return true is any mobile radio needs to be shutdown
886bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla     */
887bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla    boolean needMobileRadioShutdown();
888bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla
889bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla    /**
890bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla     * Shutdown Mobile Radios
891bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla     */
892bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla    void shutdownMobileRadios();
8932af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville
8942af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville    /**
8952af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     * Set phone radio type and access technology.
8962af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     *
8972af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     * @param rafs an RadioAccessFamily array to indicate all phone's
8982af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     *        new radio access family. The length of RadioAccessFamily
8992af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     *        must equ]]al to phone count.
9002af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     */
9012af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville    void setRadioCapability(in RadioAccessFamily[] rafs);
9022af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville
9032af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville    /**
9042af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     * Get phone radio type and access technology.
9052af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     *
9062af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     * @param phoneId which phone you want to get
9076e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage the name of the package making the call
9082af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     * @return phone radio type and access technology
9092af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     */
9106e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    int getRadioAccessFamily(in int phoneId, String callingPackage);
9114a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee
9124a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee    /**
9134a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee     * Enables or disables video calling.
9144a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee     *
9154a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee     * @param enable Whether to enable video calling.
9164a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee     */
9174a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee    void enableVideoCalling(boolean enable);
9184a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee
9194a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee    /**
9204a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee     * Whether video calling has been enabled by the user.
9214a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee     *
92216a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov     * @param callingPackage The package making the call.
92367fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee     * @return {@code true} if the user has enabled video calling, {@code false} otherwise.
9244a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee     */
92516a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov    boolean isVideoCallingEnabled(String callingPackage);
9260b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe
9270303be4a8ac109e52b2581b7c6a94b27c581f84fLibin.Tang@motorola.com    /**
92867fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee     * Whether the DTMF tone length can be changed.
92967fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee     *
93067fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee     * @return {@code true} if the DTMF tone length can be changed.
93167fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee     */
93267fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee    boolean canChangeDtmfToneLength();
93367fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee
93467fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee    /**
93567fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee     * Whether the device is a world phone.
93667fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee     *
93767fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee     * @return {@code true} if the devices is a world phone.
93867fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee     */
93967fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee    boolean isWorldPhone();
94067fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee
94167fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee    /**
942f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee     * Whether the phone supports TTY mode.
943f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee     *
944f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee     * @return {@code true} if the device supports TTY mode.
945f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee     */
946f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee    boolean isTtyModeSupported();
947f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee
948f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee    /**
949f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee     * Whether the phone supports hearing aid compatibility.
950f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee     *
951f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee     * @return {@code true} if the device supports hearing aid compatibility.
952f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee     */
953f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee    boolean isHearingAidCompatibilitySupported();
954f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee    /**
9550303be4a8ac109e52b2581b7c6a94b27c581f84fLibin.Tang@motorola.com     * Get IMS Registration Status
9560303be4a8ac109e52b2581b7c6a94b27c581f84fLibin.Tang@motorola.com     */
9570303be4a8ac109e52b2581b7c6a94b27c581f84fLibin.Tang@motorola.com    boolean isImsRegistered();
9580b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe
9590b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe    /**
96042eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold     * Returns the Status of Wi-Fi Calling
96142eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold     *@hide
96242eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold     */
96342eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold    boolean isWifiCallingEnabled();
96442eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold
96542eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold     /**
96642eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold     * Returns the Status of Volte
96742eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold     *@hide
96842eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold     */
96942eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold    boolean isVolteEnabled();
97042eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold
97142eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold    /**
9720b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe      * Returns the unique device ID of phone, for example, the IMEI for
9730b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe      * GSM and the MEID for CDMA phones. Return null if device ID is not available.
9740b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe      *
97516a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov      * @param callingPackage The package making the call.
9760b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe      * <p>Requires Permission:
9770b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe      *   {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
9780b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe      */
97916a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov    String getDeviceId(String callingPackage);
980ed4ca5ca2c40ed2c838aaf483fcd58abdfa0ff08Santos Cordon
981ed4ca5ca2c40ed2c838aaf483fcd58abdfa0ff08Santos Cordon    /**
982ed4ca5ca2c40ed2c838aaf483fcd58abdfa0ff08Santos Cordon     * Returns the subscription ID associated with the specified PhoneAccount.
983ed4ca5ca2c40ed2c838aaf483fcd58abdfa0ff08Santos Cordon     */
984ed4ca5ca2c40ed2c838aaf483fcd58abdfa0ff08Santos Cordon    int getSubIdForPhoneAccount(in PhoneAccount phoneAccount);
985f1fb39763d87dabe254b6ed64ac8f20145035bc0Stuart Scott
986f1fb39763d87dabe254b6ed64ac8f20145035bc0Stuart Scott    void factoryReset(int subId);
9877ff76d637f5ad49838e9d4a1570c762a187ed4d1Narayan Kamath
9887ff76d637f5ad49838e9d4a1570c762a187ed4d1Narayan Kamath    /**
9897ff76d637f5ad49838e9d4a1570c762a187ed4d1Narayan Kamath     * An estimate of the users's current locale based on the default SIM.
9907ff76d637f5ad49838e9d4a1570c762a187ed4d1Narayan Kamath     *
9917ff76d637f5ad49838e9d4a1570c762a187ed4d1Narayan Kamath     * The returned string will be a well formed BCP-47 language tag, or {@code null}
9927ff76d637f5ad49838e9d4a1570c762a187ed4d1Narayan Kamath     * if no locale could be derived.
9937ff76d637f5ad49838e9d4a1570c762a187ed4d1Narayan Kamath     */
9947ff76d637f5ad49838e9d4a1570c762a187ed4d1Narayan Kamath    String getLocaleFromDefaultSim();
9955c728994311c40821604c6711171e860776659a6Prerepa Viswanadham
9965c728994311c40821604c6711171e860776659a6Prerepa Viswanadham    /**
9975c728994311c40821604c6711171e860776659a6Prerepa Viswanadham     * Return the modem activity info.
9985c728994311c40821604c6711171e860776659a6Prerepa Viswanadham     *@hide
9995c728994311c40821604c6711171e860776659a6Prerepa Viswanadham     */
10005c728994311c40821604c6711171e860776659a6Prerepa Viswanadham    ModemActivityInfo getModemActivityInfo();
1001bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla}
1002