ITelephony.aidl revision 06e1ae1a51b9fb8c65e610c22f86380c60a803a0
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;
21010bf374d8145528f8733dfa6ef101b15de23a8dAdam Lesinskiimport android.os.ResultReceiver;
22740fb3bcca1366e20783dd7656d3ffe6ea3a744eNancy Chenimport android.net.Uri;
23ed4ca5ca2c40ed2c838aaf483fcd58abdfa0ff08Santos Cordonimport android.telecom.PhoneAccount;
24740fb3bcca1366e20783dd7656d3ffe6ea3a744eNancy Chenimport android.telecom.PhoneAccountHandle;
25fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Savilleimport android.telephony.CellInfo;
26a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawalimport android.telephony.IccOpenLogicalChannelResponse;
2739daf8d6f14a01d2854352fe08d14195f7a2056bJack Yuimport android.telephony.ModemActivityInfo;
28a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawalimport android.telephony.NeighboringCellInfo;
292af2d57d578e0c3a2740628e7c6336b19961cc49Wink Savilleimport android.telephony.RadioAccessFamily;
3039daf8d6f14a01d2854352fe08d14195f7a2056bJack Yuimport android.telephony.ServiceState;
3106e1ae1a51b9fb8c65e610c22f86380c60a803a0Sanket Padaweimport android.telephony.TelephonyHistogram;
32d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawalimport com.android.internal.telephony.CellNetworkScanResult;
33d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawalimport com.android.internal.telephony.OperatorInfo;
3406e1ae1a51b9fb8c65e610c22f86380c60a803a0Sanket Padawe
35a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawalimport java.util.List;
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37aae9216320328e6b865725219a31a029ea46c1b0Sailesh Nepal
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
39767a662ecde33c3979bf02b793d392aca0403162Wink Saville * Interface used to interact with the phone.  Mostly this is used by the
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * TelephonyManager class.  A few places are still using this directly.
414a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee * Please clean them up if possible and use TelephonyManager instead.
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@hide}
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinterface ITelephony {
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Dial a number. This doesn't place the call. It displays
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the Dialer screen.
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param number the number to be dialed. If null, this
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * would display the Dialer screen with no number pre-filled.
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void dial(String number);
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Place a call to the specified number.
5716a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov     * @param callingPackage The package making the call.
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param number the number to be called.
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
60f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn    void call(String callingPackage, String number);
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
634d396052deb54399cbadbeb8abd873df6f3af342Jeff Brown     * End call if there is a call in progress, otherwise does nothing.
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return whether it hung up
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean endCall();
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
70fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * End call on particular subId or go to the Home screen
71fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
72fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return whether it hung up
73fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
7463f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    boolean endCallForSubscriber(int subId);
75fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
76fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Answer the currently-ringing call.
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If there's already a current active call, that call will be
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * automatically put on hold.  If both lines are currently in use, the
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * current active call will be ended.
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * TODO: provide a flag to let the caller specify what policy to use
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * if both lines are in use.  (The current behavior is hardwired to
859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * "answer incoming, end ongoing", which is how the CALL button
869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * is specced to behave.)
879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * TODO: this should be a oneway call (especially since it's called
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * directly from the key queue thread).
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void answerRingingCall();
929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
9405e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * Answer the currently-ringing call on particular subId .
9505e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     *
9605e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * If there's already a current active call, that call will be
9705e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * automatically put on hold.  If both lines are currently in use, the
9805e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * current active call will be ended.
9905e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     *
10005e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * TODO: provide a flag to let the caller specify what policy to use
10105e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * if both lines are in use.  (The current behavior is hardwired to
10205e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * "answer incoming, end ongoing", which is how the CALL button
10305e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * is specced to behave.)
10405e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     *
10505e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * TODO: this should be a oneway call (especially since it's called
10605e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     * directly from the key queue thread).
10705e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville     */
10863f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    void answerRingingCallForSubscriber(int subId);
10905e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville
11005e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville    /**
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Silence the ringer if an incoming call is currently ringing.
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (If vibrating, stop the vibrator also.)
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * It's safe to call this if the ringer has already been silenced, or
1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * even if there's no incoming call.  (If so, this method will do nothing.)
1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * TODO: this should be a oneway call too (see above).
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *       (Actually *all* the methods here that return void can
1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *       probably be oneway.)
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void silenceRinger();
1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check if we are in either an active or holding call
1256e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage the name of the package making the call.
1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the phone state is OFFHOOK.
1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1286e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    boolean isOffhook(String callingPackage);
1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
131fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Check if a particular subId has an active or holding call
132fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *
133fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
1346e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage the name of the package making the call.
135fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return true if the phone state is OFFHOOK.
136fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
1376e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    boolean isOffhookForSubscriber(int subId, String callingPackage);
138fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
139fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
140fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Check if an incoming phone call is ringing or call waiting
141fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * on a particular subId.
142fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *
143fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
1446e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage the name of the package making the call.
145fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return true if the phone state is RINGING.
146fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
1476e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    boolean isRingingForSubscriber(int subId, String callingPackage);
148fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
149fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check if an incoming phone call is ringing or call waiting.
1516e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage the name of the package making the call.
1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the phone state is RINGING.
1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1546e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    boolean isRinging(String callingPackage);
1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check if the phone is idle.
1586e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage the name of the package making the call.
1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if the phone state is IDLE.
1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1616e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    boolean isIdle(String callingPackage);
1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
164fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Check if the phone is idle on a particular subId.
165fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *
166fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
1676e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage the name of the package making the call.
168fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return true if the phone state is IDLE.
169fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
1706e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    boolean isIdleForSubscriber(int subId, String callingPackage);
171fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
172fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Check to see if the radio is on or not.
1746e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage the name of the package making the call.
1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return returns true if the radio is on.
1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1776e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    boolean isRadioOn(String callingPackage);
1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
180fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Check to see if the radio is on or not on particular subId.
181fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
1826e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage the name of the package making the call.
183fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return returns true if the radio is on.
184fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
1856e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    boolean isRadioOnForSubscriber(int subId, String callingPackage);
186fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
187fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Supply a pin to unlock the SIM.  Blocks until a result is determined.
1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param pin The pin to check.
1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return whether the operation was a success.
1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean supplyPin(String pin);
1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
195fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Supply a pin to unlock the SIM for particular subId.
196fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Blocks until a result is determined.
197fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param pin The pin to check.
198fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
199fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return whether the operation was a success.
200fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
20163f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    boolean supplyPinForSubscriber(int subId, String pin);
202fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
203fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
20498c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     * Supply puk to unlock the SIM and set SIM pin to new pin.
20598c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     *  Blocks until a result is determined.
20698c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     * @param puk The puk to check.
20798c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     *        pin The new pin to be set in SIM
20898c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     * @return whether the operation was a success.
20998c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang     */
21098c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang    boolean supplyPuk(String puk, String pin);
21198c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang
21298c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang    /**
213fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Supply puk to unlock the SIM and set SIM pin to new pin.
214fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *  Blocks until a result is determined.
215fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param puk The puk to check.
216fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *        pin The new pin to be set in SIM
217fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
218fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return whether the operation was a success.
219fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
22063f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    boolean supplyPukForSubscriber(int subId, String puk, String pin);
221fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
222fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
223b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Supply a pin to unlock the SIM.  Blocks until a result is determined.
224b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Returns a specific success/error code.
225b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * @param pin The pin to check.
226b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code
227b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     *         retValue[1] = number of attempts remaining if known otherwise -1
228b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     */
229b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville    int[] supplyPinReportResult(String pin);
230b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville
231b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville    /**
232fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Supply a pin to unlock the SIM.  Blocks until a result is determined.
233fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns a specific success/error code.
234fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param pin The pin to check.
235fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code
236fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *         retValue[1] = number of attempts remaining if known otherwise -1
237fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
23863f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    int[] supplyPinReportResultForSubscriber(int subId, String pin);
239fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
240fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
241b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Supply puk to unlock the SIM and set SIM pin to new pin.
242b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Blocks until a result is determined.
243b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * Returns a specific success/error code
244b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * @param puk The puk to check
245b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     *        pin The pin to check.
246b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code
247b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     *         retValue[1] = number of attempts remaining if known otherwise -1
248b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville     */
249b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville    int[] supplyPukReportResult(String puk, String pin);
250b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville
251b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville    /**
252fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Supply puk to unlock the SIM and set SIM pin to new pin.
253fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Blocks until a result is determined.
254fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns a specific success/error code
255fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param puk The puk to check
256fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *        pin The pin to check.
257fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code
258fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *         retValue[1] = number of attempts remaining if known otherwise -1
259fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
26063f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    int[] supplyPukReportResultForSubscriber(int subId, String puk, String pin);
261fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
262fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Handles PIN MMI commands (PIN/PIN2/PUK/PUK2), which are initiated
2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * without SEND (so <code>dial</code> is not appropriate).
265767a662ecde33c3979bf02b793d392aca0403162Wink Saville     *
2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param dialString the MMI command to be executed.
2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return true if MMI command is executed.
2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean handlePinMmi(String dialString);
2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
272fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Handles PIN MMI commands (PIN/PIN2/PUK/PUK2), which are initiated
273fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * without SEND (so <code>dial</code> is not appropriate) for
274fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * a particular subId.
275fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param dialString the MMI command to be executed.
276fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
277fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return true if MMI command is executed.
278fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
27963f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    boolean handlePinMmiForSubscriber(int subId, String dialString);
280fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
281fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Toggles the radio on or off.
2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void toggleRadioOnOff();
2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
287fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Toggles the radio on or off on particular subId.
288fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
289fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
29063f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    void toggleRadioOnOffForSubscriber(int subId);
291fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
292fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Set the radio to on or off
2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean setRadio(boolean turnOn);
2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
298fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Set the radio to on or off on particular subId.
299fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
300fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
30163f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    boolean setRadioForSubscriber(int subId, boolean turnOn);
302fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
303fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
30445ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville     * Set the radio to on or off unconditionally
30545ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville     */
30645ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville    boolean setRadioPower(boolean turnOn);
30745ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville
30845ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville    /**
3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Request to update location information in service state
3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void updateServiceLocation();
3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
314fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Request to update location information for a subscrition in service state
315fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
316fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
31763f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    void updateServiceLocationForSubscriber(int subId);
318fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
319fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Enable location update notifications.
3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void enableLocationUpdates();
3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
325fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Enable location update notifications.
326fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
327fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
32863f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    void enableLocationUpdatesForSubscriber(int subId);
329fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
330fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Disable location update notifications.
3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void disableLocationUpdates();
3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
336fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Disable location update notifications.
337fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
338fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
33963f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    void disableLocationUpdatesForSubscriber(int subId);
340fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
341fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Allow mobile data connections.
3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean enableDataConnectivity();
3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Disallow mobile data connections.
3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean disableDataConnectivity();
3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Report whether data connectivity is possible.
3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isDataConnectivityPossible();
3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
356275b5635ad98a411d511894e98f80e8b8bc41799Svetoslav    Bundle getCellLocation(String callingPkg);
3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the neighboring cell information of the device.
3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
361f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn    List<NeighboringCellInfo> getNeighboringCellInfo(String callingPkg);
3629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     int getCallState();
364fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
365fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
366dc50a87495c23068b4150a0fc197e51ace2ae47bShishir Agrawal     * Returns the call state for a slot.
367fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
368dc50a87495c23068b4150a0fc197e51ace2ae47bShishir Agrawal     int getCallStateForSlot(int slotId);
369fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     int getDataActivity();
3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     int getDataState();
372767a662ecde33c3979bf02b793d392aca0403162Wink Saville
373767a662ecde33c3979bf02b793d392aca0403162Wink Saville    /**
374767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Returns the current active phone type as integer.
375767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * Returns TelephonyManager.PHONE_TYPE_CDMA if RILConstants.CDMA_PHONE
376767a662ecde33c3979bf02b793d392aca0403162Wink Saville     * and TelephonyManager.PHONE_TYPE_GSM if RILConstants.GSM_PHONE
377767a662ecde33c3979bf02b793d392aca0403162Wink Saville     */
378767a662ecde33c3979bf02b793d392aca0403162Wink Saville    int getActivePhoneType();
379767a662ecde33c3979bf02b793d392aca0403162Wink Saville
380e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
381dc50a87495c23068b4150a0fc197e51ace2ae47bShishir Agrawal     * Returns the current active phone type as integer for particular slot.
382fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns TelephonyManager.PHONE_TYPE_CDMA if RILConstants.CDMA_PHONE
383fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * and TelephonyManager.PHONE_TYPE_GSM if RILConstants.GSM_PHONE
384dc50a87495c23068b4150a0fc197e51ace2ae47bShishir Agrawal     * @param slotId - slot to query.
385fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
386dc50a87495c23068b4150a0fc197e51ace2ae47bShishir Agrawal    int getActivePhoneTypeForSlot(int slotId);
387fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
388fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
389e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Returns the CDMA ERI icon index to display
3906e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage package making the call.
391e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
3926e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    int getCdmaEriIconIndex(String callingPackage);
393e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
394e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
395fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the CDMA ERI icon index to display on particular subId.
396fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
3976e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage package making the call.
398fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
3996e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    int getCdmaEriIconIndexForSubscriber(int subId, String callingPackage);
400fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
401fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
402e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Returns the CDMA ERI icon mode,
403e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * 0 - ON
404e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * 1 - FLASHING
4056e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage package making the call.
406e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
4076e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    int getCdmaEriIconMode(String callingPackage);
408e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
409e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    /**
410fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the CDMA ERI icon mode on particular subId,
411fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * 0 - ON
412fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * 1 - FLASHING
413fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
4146e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage package making the call.
415fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
4166e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    int getCdmaEriIconModeForSubscriber(int subId, String callingPackage);
417fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
418fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
419e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     * Returns the CDMA ERI text,
4206e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage package making the call.
421e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville     */
4226e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    String getCdmaEriText(String callingPackage);
423e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
424dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville    /**
425fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the CDMA ERI text for particular subId,
426fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
4276e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage package making the call.
428fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
4296e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    String getCdmaEriTextForSubscriber(int subId, String callingPackage);
430fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
431fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
4324d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville     * Returns true if OTA service provisioning needs to run.
4334d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville     * Only relevant on some technologies, others will always
4344d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville     * return false.
435767be5f0b929cc1eeb8a7d5aa7a02e228053e9bbJim Miller     */
4364d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville    boolean needsOtaServiceProvisioning();
437767be5f0b929cc1eeb8a7d5aa7a02e228053e9bbJim Miller
438767be5f0b929cc1eeb8a7d5aa7a02e228053e9bbJim Miller    /**
4395c1a63c2235c36ce0b520fa88a9d21ffe255756eShishir Agrawal     * Sets the voicemail number for a particular subscriber.
4405c1a63c2235c36ce0b520fa88a9d21ffe255756eShishir Agrawal     */
4415c1a63c2235c36ce0b520fa88a9d21ffe255756eShishir Agrawal    boolean setVoiceMailNumber(int subId, String alphaTag, String number);
4425c1a63c2235c36ce0b520fa88a9d21ffe255756eShishir Agrawal
4435c1a63c2235c36ce0b520fa88a9d21ffe255756eShishir Agrawal    /**
444dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville      * Returns the unread count of voicemails
445dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville      */
446ce099c3226b33b43e0dd5d1f24347b14a2223ee1David Krause    int getVoiceMessageCount();
447dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville
448ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe    /**
449fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the unread count of voicemails for a subId.
450fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
451fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the unread count of voicemails
452fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
45363f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    int getVoiceMessageCountForSubscriber(int subId);
454fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
455349f4eddf76d1f16966a7ae7b599e984f599cf2eTa-wei Yen    // Not oneway, caller needs to make sure the vaule is set before receiving a SMS
456349f4eddf76d1f16966a7ae7b599e984f599cf2eTa-wei Yen    void setVisualVoicemailSmsFilterEnabled(int subId, boolean value);
457349f4eddf76d1f16966a7ae7b599e984f599cf2eTa-wei Yen
458349f4eddf76d1f16966a7ae7b599e984f599cf2eTa-wei Yen    boolean isVisualVoicemailSmsFilterEnabled(String packageName, int subId);
459349f4eddf76d1f16966a7ae7b599e984f599cf2eTa-wei Yen
460349f4eddf76d1f16966a7ae7b599e984f599cf2eTa-wei Yen    // Not oneway, caller needs to make sure the vaule is set before receiving a SMS
461349f4eddf76d1f16966a7ae7b599e984f599cf2eTa-wei Yen    void setVisualVoicemailSmsFilterClientPrefix(int subId, String prefix);
462349f4eddf76d1f16966a7ae7b599e984f599cf2eTa-wei Yen
463349f4eddf76d1f16966a7ae7b599e984f599cf2eTa-wei Yen    String getVisualVoicemailSmsFilterClientPrefix(String packageName, int subId);
464349f4eddf76d1f16966a7ae7b599e984f599cf2eTa-wei Yen
465349f4eddf76d1f16966a7ae7b599e984f599cf2eTa-wei Yen    // Not oneway, caller needs to make sure the vaule is set before receiving a SMS
466349f4eddf76d1f16966a7ae7b599e984f599cf2eTa-wei Yen    void setVisualVoicemailSmsFilterOriginatingNumbers(int subId, in String[] numbers);
467349f4eddf76d1f16966a7ae7b599e984f599cf2eTa-wei Yen
468349f4eddf76d1f16966a7ae7b599e984f599cf2eTa-wei Yen    String[] getVisualVoicemailSmsFilterOriginatingNumbers(String packageName, int subId);
469349f4eddf76d1f16966a7ae7b599e984f599cf2eTa-wei Yen
470349f4eddf76d1f16966a7ae7b599e984f599cf2eTa-wei Yen    // Not oneway, caller needs to make sure the vaule is set before receiving a SMS
471349f4eddf76d1f16966a7ae7b599e984f599cf2eTa-wei Yen    void setVisualVoicemailSmsFilterDestinationPort(int subId, int port);
472349f4eddf76d1f16966a7ae7b599e984f599cf2eTa-wei Yen
473349f4eddf76d1f16966a7ae7b599e984f599cf2eTa-wei Yen    int getVisualVoicemailSmsFilterDestinationPort(String packageName, int subId);
474349f4eddf76d1f16966a7ae7b599e984f599cf2eTa-wei Yen
475fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
4766e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * Returns the network type for data transmission
4779bc8299ca0b2e8396b9f2f027c440cda164ba75eRobert Greenwalt     * Legacy call, permission-free
4786e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     */
4799bc8299ca0b2e8396b9f2f027c440cda164ba75eRobert Greenwalt    int getNetworkType();
48098c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang
481e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville    /**
482fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the network type of a subId.
483fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId user preferred subId.
4846e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage package making the call.
485fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
4866e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    int getNetworkTypeForSubscriber(int subId, String callingPackage);
487fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
488fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
4896e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * Returns the network type for data transmission
4906e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage package making the call.
4916e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     */
4926e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    int getDataNetworkType(String callingPackage);
4930dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville
4940dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville    /**
4956e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * Returns the data network type of a subId
4966e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param subId user preferred subId.
4976e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage package making the call.
4986e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     */
4996e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    int getDataNetworkTypeForSubscriber(int subId, String callingPackage);
500fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
501fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
502fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      * Returns the voice network type of a subId
503fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      * @param subId user preferred subId.
5049bc8299ca0b2e8396b9f2f027c440cda164ba75eRobert Greenwalt      * @param callingPackage package making the call.
505fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      * Returns the network type
506fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville      */
5079bc8299ca0b2e8396b9f2f027c440cda164ba75eRobert Greenwalt    int getVoiceNetworkTypeForSubscriber(int subId, String callingPackage);
508fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
509fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
510e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville     * Return true if an ICC card is present
511e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville     */
512e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville    boolean hasIccCard();
5135e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville
5145e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville    /**
515fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Return true if an ICC card is present for a subId.
516fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param slotId user preferred slotId.
517fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Return true if an ICC card is present
518fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
51963f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    boolean hasIccCardUsingSlotId(int slotId);
520fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
521fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
5225e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * Return if the current radio is LTE on CDMA. This
5235e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * is a tri-state return value as for a period of time
5245e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * the mode may be unknown.
5255e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     *
5266e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage the name of the calling package
5275e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * @return {@link Phone#LTE_ON_CDMA_UNKNOWN}, {@link Phone#LTE_ON_CDMA_FALSE}
5285e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     * or {@link PHone#LTE_ON_CDMA_TRUE}
5295e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville     */
5306e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    int getLteOnCdmaMode(String callingPackage);
531963db55d59a170f4b17ff907c96615a19ef6fe17John Wang
532963db55d59a170f4b17ff907c96615a19ef6fe17John Wang    /**
533fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Return if the current radio is LTE on CDMA. This
534fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * is a tri-state return value as for a period of time
535fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * the mode may be unknown.
536fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *
5376e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage the name of the calling package
538fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return {@link Phone#LTE_ON_CDMA_UNKNOWN}, {@link Phone#LTE_ON_CDMA_FALSE}
539fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * or {@link PHone#LTE_ON_CDMA_TRUE}
540fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
5416e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    int getLteOnCdmaModeForSubscriber(int subId, String callingPackage);
542fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
543fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
544963db55d59a170f4b17ff907c96615a19ef6fe17John Wang     * Returns the all observed cell information of the device.
545963db55d59a170f4b17ff907c96615a19ef6fe17John Wang     */
546275b5635ad98a411d511894e98f80e8b8bc41799Svetoslav    List<CellInfo> getAllCellInfo(String callingPkg);
547094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville
548094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville    /**
549094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville     * Sets minimum time in milli-seconds between onCellInfoChanged
550094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville     */
551094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville    void setCellInfoListRate(int rateInMillis);
552767a662ecde33c3979bf02b793d392aca0403162Wink Saville
55357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal    /**
554fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * get default sim
555fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return sim id
556fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
557fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    int getDefaultSim();
558fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
559fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
56057f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Opens a logical channel to the ICC card.
56157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
56257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Input parameters equivalent to TS 27.007 AT+CCHO command.
56357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
56452103938915205cfd1febe09e2cae58060a8ef74Shishir Agrawal     * @param subId The subscription to use.
56557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param AID Application id. See ETSI 102.221 and 101.220.
566a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @return an IccOpenLogicalChannelResponse object.
56757f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     */
56852103938915205cfd1febe09e2cae58060a8ef74Shishir Agrawal    IccOpenLogicalChannelResponse iccOpenLogicalChannel(int subId, String AID);
56957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal
57057f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal    /**
57157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Closes a previously opened logical channel to the ICC card.
57257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
57357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Input parameters equivalent to TS 27.007 AT+CCHC command.
57457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
57552103938915205cfd1febe09e2cae58060a8ef74Shishir Agrawal     * @param subId The subscription to use.
57657f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param channel is the channel id to be closed as retruned by a
57757f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *            successful iccOpenLogicalChannel.
57857f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @return true if the channel was closed successfully.
57957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     */
58052103938915205cfd1febe09e2cae58060a8ef74Shishir Agrawal    boolean iccCloseLogicalChannel(int subId, int channel);
58157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal
58257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal    /**
58357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Transmit an APDU to the ICC card over a logical channel.
58457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
58557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * Input parameters equivalent to TS 27.007 AT+CGLA command.
58657f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *
58752103938915205cfd1febe09e2cae58060a8ef74Shishir Agrawal     * @param subId The subscription to use.
58857f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param channel is the channel id to be closed as retruned by a
58957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *            successful iccOpenLogicalChannel.
59057f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param cla Class of the APDU command.
59157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param instruction Instruction of the APDU command.
59257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param p1 P1 value of the APDU command.
59357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param p2 P2 value of the APDU command.
59457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param p3 P3 value of the APDU command. If p3 is negative a 4 byte APDU
59557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     *            is sent to the SIM.
59657f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @param data Data to be sent with the APDU.
59757f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     * @return The APDU response from the ICC card with the status appended at
59843d94347a6feb14870a4ffd7682a816210e5e676Shishir Agrawal     *            the end.
59957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal     */
60052103938915205cfd1febe09e2cae58060a8ef74Shishir Agrawal    String iccTransmitApduLogicalChannel(int subId, int channel, int cla, int instruction,
60157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal            int p1, int p2, int p3, String data);
6028f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
6038f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    /**
604a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * Transmit an APDU to the ICC card over the basic channel.
605a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     *
606a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * Input parameters equivalent to TS 27.007 AT+CSIM command.
607a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     *
60852103938915205cfd1febe09e2cae58060a8ef74Shishir Agrawal     * @param subId The subscription to use.
609a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param cla Class of the APDU command.
610a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param instruction Instruction of the APDU command.
611a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param p1 P1 value of the APDU command.
612a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param p2 P2 value of the APDU command.
613a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param p3 P3 value of the APDU command. If p3 is negative a 4 byte APDU
614a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     *            is sent to the SIM.
615a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param data Data to be sent with the APDU.
616a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @return The APDU response from the ICC card with the status appended at
61743d94347a6feb14870a4ffd7682a816210e5e676Shishir Agrawal     *            the end.
618a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     */
61952103938915205cfd1febe09e2cae58060a8ef74Shishir Agrawal    String iccTransmitApduBasicChannel(int subId, int cla, int instruction,
620a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal            int p1, int p2, int p3, String data);
621a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal
622a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal    /**
623a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * Returns the response APDU for a command APDU sent through SIM_IO.
624a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     *
62552103938915205cfd1febe09e2cae58060a8ef74Shishir Agrawal     * @param subId The subscription to use.
626a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param fileID
627a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param command
628a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param p1 P1 value of the APDU command.
629a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param p2 P2 value of the APDU command.
630a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param p3 P3 value of the APDU command.
631a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @param filePath
632a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     * @return The APDU response.
633a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal     */
63452103938915205cfd1febe09e2cae58060a8ef74Shishir Agrawal    byte[] iccExchangeSimIO(int subId, int fileID, int command, int p1, int p2, int p3,
635a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal            String filePath);
636a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal
637a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal    /**
638b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton     * Send ENVELOPE to the SIM and returns the response.
639210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton     *
64052103938915205cfd1febe09e2cae58060a8ef74Shishir Agrawal     * @param subId The subscription to use.
641210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton     * @param contents  String containing SAT/USAT response in hexadecimal
642210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton     *                  format starting with command tag. See TS 102 223 for
643210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton     *                  details.
644b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton     * @return The APDU response from the ICC card, with the last 4 bytes
645b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton     *         being the status word. If the command fails, returns an empty
646b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton     *         string.
647210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton     */
64852103938915205cfd1febe09e2cae58060a8ef74Shishir Agrawal    String sendEnvelopeWithStatus(int subId, String content);
649210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton
650210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton    /**
6518f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Read one of the NV items defined in {@link RadioNVItems} / {@code ril_nv_items.h}.
6528f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Used for device configuration by some CDMA operators.
6538f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     *
6548f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param itemID the ID of the item to read.
6558f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @return the NV item as a String, or null on any failure.
6568f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     */
6578f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    String nvReadItem(int itemID);
6588f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
6598f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    /**
6608f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Write one of the NV items defined in {@link RadioNVItems} / {@code ril_nv_items.h}.
6618f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Used for device configuration by some CDMA operators.
6628f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     *
6638f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param itemID the ID of the item to read.
6648f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param itemValue the value to write, as a String.
6658f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @return true on success; false on any failure.
6668f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     */
6678f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    boolean nvWriteItem(int itemID, String itemValue);
6688f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
6698f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    /**
6708f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Update the CDMA Preferred Roaming List (PRL) in the radio NV storage.
6718f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * Used for device configuration by some CDMA operators.
6728f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     *
6738f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param preferredRoamingList byte array containing the new PRL.
6748f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @return true on success; false on any failure.
6758f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     */
6768f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    boolean nvWriteCdmaPrl(in byte[] preferredRoamingList);
6778f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
6788f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    /**
679786e71ab11f2d89afffc9db7473f16206395c813Jake Hamby     * Perform the specified type of NV config reset. The radio will be taken offline
680786e71ab11f2d89afffc9db7473f16206395c813Jake Hamby     * and the device must be rebooted after the operation. Used for device
681786e71ab11f2d89afffc9db7473f16206395c813Jake Hamby     * configuration by some CDMA operators.
6828f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     *
6838f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @param resetType the type of reset to perform (1 == factory reset; 2 == NV-only reset).
6848f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     * @return true on success; false on any failure.
6858f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby     */
6868f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby    boolean nvResetConfig(int resetType);
6878f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby
6889bbb37116d2c5b597f9b5e3094ff328971e03c0bEvan Charlton    /*
6891365703d4964466472904dc84117a0946d9e1a44Junda Liu     * Get the calculated preferred network type.
6901365703d4964466472904dc84117a0946d9e1a44Junda Liu     * Used for device configuration by some CDMA operators.
69116a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov     * @param callingPackage The package making the call.
6921365703d4964466472904dc84117a0946d9e1a44Junda Liu     *
6931365703d4964466472904dc84117a0946d9e1a44Junda Liu     * @return the calculated preferred network type, defined in RILConstants.java.
6941365703d4964466472904dc84117a0946d9e1a44Junda Liu     */
69516a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov    int getCalculatedPreferredNetworkType(String callingPackage);
6961365703d4964466472904dc84117a0946d9e1a44Junda Liu
6971365703d4964466472904dc84117a0946d9e1a44Junda Liu    /*
6984a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * Get the preferred network type.
6994a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * Used for device configuration by some CDMA operators.
7004a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     *
701984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott     * @param subId the id of the subscription to query.
7024a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * @return the preferred network type, defined in RILConstants.java.
7034a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     */
704984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott    int getPreferredNetworkType(int subId);
7054a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby
7064a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby    /**
70738531581fc19f9172fabe56047b326e5dab88625Junda Liu     * Check TETHER_DUN_REQUIRED and TETHER_DUN_APN settings, net.tethering.noprovisioning
70838531581fc19f9172fabe56047b326e5dab88625Junda Liu     * SystemProperty, and config_tether_apndata to decide whether DUN APN is required for
70938531581fc19f9172fabe56047b326e5dab88625Junda Liu     * tethering.
71038531581fc19f9172fabe56047b326e5dab88625Junda Liu     *
71138531581fc19f9172fabe56047b326e5dab88625Junda Liu     * @return 0: Not required. 1: required. 2: Not set.
71238531581fc19f9172fabe56047b326e5dab88625Junda Liu     */
71338531581fc19f9172fabe56047b326e5dab88625Junda Liu    int getTetherApnRequired();
71438531581fc19f9172fabe56047b326e5dab88625Junda Liu
71538531581fc19f9172fabe56047b326e5dab88625Junda Liu    /**
716984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott     * Set the network selection mode to automatic.
717984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott     *
718984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott     * @param subId the id of the subscription to update.
719984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott     */
720984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott    void setNetworkSelectionModeAutomatic(int subId);
721984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott
722984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott    /**
723d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal     * Perform a radio scan and return the list of avialble networks.
724d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal     *
725d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal     * @param subId the id of the subscription.
726d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal     * @return CellNetworkScanResult containing status of scan and networks.
727d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal     */
728d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal    CellNetworkScanResult getCellNetworkScanResults(int subId);
729d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal
730d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal    /**
731d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal     * Ask the radio to connect to the input network and change selection mode to manual.
732d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal     *
733d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal     * @param subId the id of the subscription.
734d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal     * @param operatorInfo the operator to attach to.
735e25bd01ad662d1a5b19592c98fac0a3035081375Shishir Agrawal     * @param persistSelection should the selection persist till reboot or its
736e25bd01ad662d1a5b19592c98fac0a3035081375Shishir Agrawal     *        turned off? Will also result in notification being not shown to
737e25bd01ad662d1a5b19592c98fac0a3035081375Shishir Agrawal     *        the user if the signal is lost.
738d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal     * @return true if the request suceeded.
739d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal     */
740e25bd01ad662d1a5b19592c98fac0a3035081375Shishir Agrawal    boolean setNetworkSelectionModeManual(int subId, in OperatorInfo operator,
741e25bd01ad662d1a5b19592c98fac0a3035081375Shishir Agrawal            boolean persistSelection);
742d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal
743d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal    /**
7444a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * Set the preferred network type.
7454a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * Used for device configuration by some CDMA operators.
7464a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     *
747984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott     * @param subId the id of the subscription to update.
7484a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * @param networkType the preferred network type, defined in RILConstants.java.
7494a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     * @return true on success; false on any failure.
7504a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby     */
751984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott    boolean setPreferredNetworkType(int subId, int networkType);
752afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt
753afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt    /**
754afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     * User enable/disable Mobile Data.
755afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     *
756afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     * @param enable true to turn on, else false
757afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     */
75836ffb0494dd1045c164b7479b68165e206f8c759Wink Saville    void setDataEnabled(int subId, boolean enable);
759afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt
760afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt    /**
761afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     * Get the user enabled state of Mobile Data.
762afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     *
763afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     * @return true on enabled
764afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt     */
76536ffb0494dd1045c164b7479b68165e206f8c759Wink Saville    boolean getDataEnabled(int subId);
766fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
767fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
768fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Get P-CSCF address from PCO after data connection is established or modified.
769e647099e14114475e9a2827a10dab2d2e36308c4ram     * @param apnType the apnType, "ims" for IMS APN, "emergency" for EMERGENCY APN
77016a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov     * @param callingPackage The package making the call.
771fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
77216a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov    String[] getPcscfAddress(String apnType, String callingPackage);
773fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
774fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
775fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Set IMS registration state
776fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
777fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    void setImsRegistrationState(boolean registered);
778fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
779762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal    /**
7802b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu     * Return MDN string for CDMA phone.
7812b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu     * @param subId user preferred subId.
7822b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu     */
78363f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    String getCdmaMdn(int subId);
7842b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu
7852b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu    /**
7862b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu     * Return MIN string for CDMA phone.
7872b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu     * @param subId user preferred subId.
7882b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu     */
78963f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville    String getCdmaMin(int subId);
7902b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu
7912b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu    /**
792762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     * Has the calling application been granted special privileges by the carrier.
793762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     *
794762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     * If any of the packages in the calling UID has carrier privileges, the
795762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     * call will return true. This access is granted by the owner of the UICC
796762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     * card and does not depend on the registered carrier.
797762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     *
798762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     * TODO: Add a link to documentation.
799762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     *
80052103938915205cfd1febe09e2cae58060a8ef74Shishir Agrawal     * @param subId The subscription to use.
801fc3646f58e5851e7a483b8388bdd826078166d10Shishir Agrawal     * @return carrier privilege status defined in TelephonyManager.
802762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal     */
80352103938915205cfd1febe09e2cae58060a8ef74Shishir Agrawal    int getCarrierPrivilegeStatus(int subId);
804142529702dad9a6612271f487d500db80173ba7bJunda Liu
805142529702dad9a6612271f487d500db80173ba7bJunda Liu    /**
806b4b9ca7580c75f07330e5222cbd9ccc93b12935eZach Johnson     * Similar to above, but check for the package whose name is pkgName.
807142529702dad9a6612271f487d500db80173ba7bJunda Liu     */
808b4b9ca7580c75f07330e5222cbd9ccc93b12935eZach Johnson    int checkCarrierPrivilegesForPackage(String pkgName);
809b4b9ca7580c75f07330e5222cbd9ccc93b12935eZach Johnson
810b4b9ca7580c75f07330e5222cbd9ccc93b12935eZach Johnson    /**
811b4b9ca7580c75f07330e5222cbd9ccc93b12935eZach Johnson     * Similar to above, but check across all phones.
812b4b9ca7580c75f07330e5222cbd9ccc93b12935eZach Johnson     */
813b4b9ca7580c75f07330e5222cbd9ccc93b12935eZach Johnson    int checkCarrierPrivilegesForPackageAnyPhone(String pkgName);
814f9aefdb534c6cb2af22dfb7614a1c15c2d67dd9cDerek Tan
815f9aefdb534c6cb2af22dfb7614a1c15c2d67dd9cDerek Tan    /**
816f3c7bf432dc5c21fdecbb44865c037313d21b4cfJunda Liu     * Returns list of the package names of the carrier apps that should handle the input intent
817f3c7bf432dc5c21fdecbb44865c037313d21b4cfJunda Liu     * and have carrier privileges for the given phoneId.
81863c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal     *
8193892fc0349a91097f53152eaf2801dfebb2066caDiego Pontoriero     * @param intent Intent that will be sent.
820f3c7bf432dc5c21fdecbb44865c037313d21b4cfJunda Liu     * @param phoneId The phoneId on which the carrier app has carrier privileges.
821f3c7bf432dc5c21fdecbb44865c037313d21b4cfJunda Liu     * @return list of carrier app package names that can handle the intent on phoneId.
82263c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal     *         Returns null if there is an error and an empty list if there
82363c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal     *         are no matching packages.
82463c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal     */
825f3c7bf432dc5c21fdecbb44865c037313d21b4cfJunda Liu    List<String> getCarrierPackageNamesForIntentAndPhone(in Intent intent, int phoneId);
82663c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal
82763c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal    /**
8282bae510ccef2da7dd767f8148d4e3539037f4aaaDerek Tan     * Set the line 1 phone number string and its alphatag for the current ICCID
8292bae510ccef2da7dd767f8148d4e3539037f4aaaDerek Tan     * for display purpose only, for example, displayed in Phone Status. It won't
8302bae510ccef2da7dd767f8148d4e3539037f4aaaDerek Tan     * change the actual MSISDN/MDN. To unset alphatag or number, pass in a null
8312bae510ccef2da7dd767f8148d4e3539037f4aaaDerek Tan     * value.
832818631b679171ffb49eaa641bee06b9c953651daDerek Tan     *
833818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * @param subId the subscriber that the alphatag and dialing number belongs to.
834818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * @param alphaTag alpha-tagging of the dailing nubmer
835818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * @param number The dialing number
8360201a6f6f16a872405a5f9ee65026e948eb162d0Shishir Agrawal     * @return true if the operation was executed correctly.
837818631b679171ffb49eaa641bee06b9c953651daDerek Tan     */
8380201a6f6f16a872405a5f9ee65026e948eb162d0Shishir Agrawal    boolean setLine1NumberForDisplayForSubscriber(int subId, String alphaTag, String number);
839818631b679171ffb49eaa641bee06b9c953651daDerek Tan
840818631b679171ffb49eaa641bee06b9c953651daDerek Tan    /**
841818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * Returns the displayed dialing number string if it was set previously via
842818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * {@link #setLine1NumberForDisplay}. Otherwise returns null.
843818631b679171ffb49eaa641bee06b9c953651daDerek Tan     *
844818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * @param subId whose dialing number for line 1 is returned.
84516a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov     * @param callingPackage The package making the call.
846818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * @return the displayed dialing number if set, or null if not set.
847818631b679171ffb49eaa641bee06b9c953651daDerek Tan     */
84816a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov    String getLine1NumberForDisplay(int subId, String callingPackage);
849818631b679171ffb49eaa641bee06b9c953651daDerek Tan
850818631b679171ffb49eaa641bee06b9c953651daDerek Tan    /**
851818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * Returns the displayed alphatag of the dialing number if it was set
852818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * previously via {@link #setLine1NumberForDisplay}. Otherwise returns null.
853818631b679171ffb49eaa641bee06b9c953651daDerek Tan     *
854818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * @param subId whose alphatag associated with line 1 is returned.
85516a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov     * @param callingPackage The package making the call.
856818631b679171ffb49eaa641bee06b9c953651daDerek Tan     * @return the displayed alphatag of the dialing number if set, or null if
857818631b679171ffb49eaa641bee06b9c953651daDerek Tan     *         not set.
858818631b679171ffb49eaa641bee06b9c953651daDerek Tan     */
85916a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov    String getLine1AlphaTagForDisplay(int subId, String callingPackage);
86086578cca383562c72751d747905280afdeb2bdfbShishir Agrawal
861d24e4eafdb3e42de5a8fd080fcd50ebf4c7bcb71Fyodor Kupolov    String[] getMergedSubscriberIds(String callingPackage);
8623256601f5e4d94713f59e97b9d4912875c1bdcafJeff Sharkey
86386578cca383562c72751d747905280afdeb2bdfbShishir Agrawal    /**
864d2cfa92146ecfa5e00d4a3ce8e63b1a588845fe2Shishir Agrawal     * Override the operator branding for the current ICCID.
86586578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     *
866d2cfa92146ecfa5e00d4a3ce8e63b1a588845fe2Shishir Agrawal     * Once set, whenever the SIM is present in the device, the service
86786578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     * provider name (SPN) and the operator name will both be replaced by the
86886578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     * brand value input. To unset the value, the same function should be
86986578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     * called with a null brand value.
87086578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     *
87186578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     * <p>Requires Permission:
87286578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     *   {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}
87386578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     *  or has to be carrier app - see #hasCarrierPrivileges.
87486578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     *
87552103938915205cfd1febe09e2cae58060a8ef74Shishir Agrawal     * @param subId The subscription to use.
87686578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     * @param brand The brand name to display/set.
87786578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     * @return true if the operation was executed correctly.
87886578cca383562c72751d747905280afdeb2bdfbShishir Agrawal     */
87952103938915205cfd1febe09e2cae58060a8ef74Shishir Agrawal    boolean setOperatorBrandOverride(int subId, String brand);
8803099c831441e861328cd4965011c854e060ce56aSteven Liu
8813099c831441e861328cd4965011c854e060ce56aSteven Liu    /**
8825fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * Override the roaming indicator for the current ICCID.
8835fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     *
8845fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * Using this call, the carrier app (see #hasCarrierPrivileges) can override
8855fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * the platform's notion of a network operator being considered roaming or not.
8865fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * The change only affects the ICCID that was active when this call was made.
8875fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     *
8885fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * If null is passed as any of the input, the corresponding value is deleted.
8895fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     *
8905fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * <p>Requires that the caller have carrier privilege. See #hasCarrierPrivileges.
8915fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     *
89252103938915205cfd1febe09e2cae58060a8ef74Shishir Agrawal     * @param subId for which the roaming overrides apply.
8935fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * @param gsmRoamingList - List of MCCMNCs to be considered roaming for 3GPP RATs.
8945fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * @param gsmNonRoamingList - List of MCCMNCs to be considered not roaming for 3GPP RATs.
8955fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * @param cdmaRoamingList - List of SIDs to be considered roaming for 3GPP2 RATs.
8965fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * @param cdmaNonRoamingList - List of SIDs to be considered not roaming for 3GPP2 RATs.
8975fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     * @return true if the operation was executed correctly.
8985fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal     */
89952103938915205cfd1febe09e2cae58060a8ef74Shishir Agrawal    boolean setRoamingOverride(int subId, in List<String> gsmRoamingList,
9005fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal            in List<String> gsmNonRoamingList, in List<String> cdmaRoamingList,
9015fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal            in List<String> cdmaNonRoamingList);
9025fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal
9035fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal    /**
9043099c831441e861328cd4965011c854e060ce56aSteven Liu     * Returns the result and response from RIL for oem request
9053099c831441e861328cd4965011c854e060ce56aSteven Liu     *
9063099c831441e861328cd4965011c854e060ce56aSteven Liu     * @param oemReq the data is sent to ril.
9073099c831441e861328cd4965011c854e060ce56aSteven Liu     * @param oemResp the respose data from RIL.
9083099c831441e861328cd4965011c854e060ce56aSteven Liu     * @return negative value request was not handled or get error
9093099c831441e861328cd4965011c854e060ce56aSteven Liu     *         0 request was handled succesfully, but no response data
9103099c831441e861328cd4965011c854e060ce56aSteven Liu     *         positive value success, data length of response
9113099c831441e861328cd4965011c854e060ce56aSteven Liu     */
9123099c831441e861328cd4965011c854e060ce56aSteven Liu    int invokeOemRilRequestRaw(in byte[] oemReq, out byte[] oemResp);
913fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
914bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla    /**
915bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla     * Check if any mobile Radios need to be shutdown.
916bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla     *
917bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla     * @return true is any mobile radio needs to be shutdown
918bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla     */
919bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla    boolean needMobileRadioShutdown();
920bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla
921bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla    /**
922bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla     * Shutdown Mobile Radios
923bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla     */
924bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla    void shutdownMobileRadios();
9252af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville
9262af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville    /**
9272af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     * Set phone radio type and access technology.
9282af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     *
9292af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     * @param rafs an RadioAccessFamily array to indicate all phone's
9302af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     *        new radio access family. The length of RadioAccessFamily
9312af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     *        must equ]]al to phone count.
9322af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     */
9332af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville    void setRadioCapability(in RadioAccessFamily[] rafs);
9342af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville
9352af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville    /**
9362af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     * Get phone radio type and access technology.
9372af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     *
9382af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     * @param phoneId which phone you want to get
9396e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt     * @param callingPackage the name of the package making the call
9402af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     * @return phone radio type and access technology
9412af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville     */
9426e4a98f8707f759fa9f47a458683a3627e42b0b6Robert Greenwalt    int getRadioAccessFamily(in int phoneId, String callingPackage);
9434a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee
9444a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee    /**
9454a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee     * Enables or disables video calling.
9464a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee     *
9474a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee     * @param enable Whether to enable video calling.
9484a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee     */
9494a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee    void enableVideoCalling(boolean enable);
9504a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee
9514a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee    /**
9524a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee     * Whether video calling has been enabled by the user.
9534a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee     *
95416a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov     * @param callingPackage The package making the call.
95567fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee     * @return {@code true} if the user has enabled video calling, {@code false} otherwise.
9564a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee     */
95716a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov    boolean isVideoCallingEnabled(String callingPackage);
9580b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe
9590303be4a8ac109e52b2581b7c6a94b27c581f84fLibin.Tang@motorola.com    /**
96067fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee     * Whether the DTMF tone length can be changed.
96167fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee     *
96267fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee     * @return {@code true} if the DTMF tone length can be changed.
96367fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee     */
96467fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee    boolean canChangeDtmfToneLength();
96567fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee
96667fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee    /**
96767fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee     * Whether the device is a world phone.
96867fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee     *
96967fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee     * @return {@code true} if the devices is a world phone.
97067fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee     */
97167fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee    boolean isWorldPhone();
97267fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee
97367fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee    /**
974f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee     * Whether the phone supports TTY mode.
975f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee     *
976f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee     * @return {@code true} if the device supports TTY mode.
977f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee     */
978f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee    boolean isTtyModeSupported();
979f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee
980f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee    /**
981f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee     * Whether the phone supports hearing aid compatibility.
982f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee     *
983f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee     * @return {@code true} if the device supports hearing aid compatibility.
984f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee     */
985f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee    boolean isHearingAidCompatibilitySupported();
986b304fc0aafe067e422ce219ba5edb4bc7a68924cEtan Cohen
987f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee    /**
9880303be4a8ac109e52b2581b7c6a94b27c581f84fLibin.Tang@motorola.com     * Get IMS Registration Status
9890303be4a8ac109e52b2581b7c6a94b27c581f84fLibin.Tang@motorola.com     */
9900303be4a8ac109e52b2581b7c6a94b27c581f84fLibin.Tang@motorola.com    boolean isImsRegistered();
9910b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe
9920b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe    /**
99342eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold     * Returns the Status of Wi-Fi Calling
99442eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold     */
995b304fc0aafe067e422ce219ba5edb4bc7a68924cEtan Cohen    boolean isWifiCallingAvailable();
996740fb3bcca1366e20783dd7656d3ffe6ea3a744eNancy Chen
997b304fc0aafe067e422ce219ba5edb4bc7a68924cEtan Cohen    /**
998b304fc0aafe067e422ce219ba5edb4bc7a68924cEtan Cohen     * Returns the Status of Volte
999b304fc0aafe067e422ce219ba5edb4bc7a68924cEtan Cohen     */
1000b304fc0aafe067e422ce219ba5edb4bc7a68924cEtan Cohen    boolean isVolteAvailable();
100142eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold
100242eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold     /**
1003b304fc0aafe067e422ce219ba5edb4bc7a68924cEtan Cohen     * Returns the Status of VT (video telephony)
100442eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold     */
1005b304fc0aafe067e422ce219ba5edb4bc7a68924cEtan Cohen    boolean isVideoTelephonyAvailable();
100642eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold
100742eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold    /**
10080b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe      * Returns the unique device ID of phone, for example, the IMEI for
10090b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe      * GSM and the MEID for CDMA phones. Return null if device ID is not available.
10100b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe      *
101116a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov      * @param callingPackage The package making the call.
10120b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe      * <p>Requires Permission:
10130b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe      *   {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
10140b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe      */
101516a16899505ec0a9ede5b76650bfb8817b3227c7Svet Ganov    String getDeviceId(String callingPackage);
1016ed4ca5ca2c40ed2c838aaf483fcd58abdfa0ff08Santos Cordon
1017ed4ca5ca2c40ed2c838aaf483fcd58abdfa0ff08Santos Cordon    /**
1018dc50a87495c23068b4150a0fc197e51ace2ae47bShishir Agrawal     * Returns the IMEI for the given slot.
1019dc50a87495c23068b4150a0fc197e51ace2ae47bShishir Agrawal     *
1020dc50a87495c23068b4150a0fc197e51ace2ae47bShishir Agrawal     * @param slotId - device slot.
1021dc50a87495c23068b4150a0fc197e51ace2ae47bShishir Agrawal     * @param callingPackage The package making the call.
1022dc50a87495c23068b4150a0fc197e51ace2ae47bShishir Agrawal     * <p>Requires Permission:
1023dc50a87495c23068b4150a0fc197e51ace2ae47bShishir Agrawal     *   {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
1024dc50a87495c23068b4150a0fc197e51ace2ae47bShishir Agrawal     */
1025dc50a87495c23068b4150a0fc197e51ace2ae47bShishir Agrawal    String getImeiForSlot(int slotId, String callingPackage);
1026dc50a87495c23068b4150a0fc197e51ace2ae47bShishir Agrawal
1027dc50a87495c23068b4150a0fc197e51ace2ae47bShishir Agrawal    /**
1028dc50a87495c23068b4150a0fc197e51ace2ae47bShishir Agrawal     * Returns the device software version.
1029dc50a87495c23068b4150a0fc197e51ace2ae47bShishir Agrawal     *
1030dc50a87495c23068b4150a0fc197e51ace2ae47bShishir Agrawal     * @param slotId - device slot.
1031dc50a87495c23068b4150a0fc197e51ace2ae47bShishir Agrawal     * @param callingPackage The package making the call.
1032dc50a87495c23068b4150a0fc197e51ace2ae47bShishir Agrawal     * <p>Requires Permission:
1033dc50a87495c23068b4150a0fc197e51ace2ae47bShishir Agrawal     *   {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
1034dc50a87495c23068b4150a0fc197e51ace2ae47bShishir Agrawal     */
1035dc50a87495c23068b4150a0fc197e51ace2ae47bShishir Agrawal    String getDeviceSoftwareVersionForSlot(int slotId, String callingPackage);
1036dc50a87495c23068b4150a0fc197e51ace2ae47bShishir Agrawal
1037dc50a87495c23068b4150a0fc197e51ace2ae47bShishir Agrawal    /**
1038ed4ca5ca2c40ed2c838aaf483fcd58abdfa0ff08Santos Cordon     * Returns the subscription ID associated with the specified PhoneAccount.
1039ed4ca5ca2c40ed2c838aaf483fcd58abdfa0ff08Santos Cordon     */
1040ed4ca5ca2c40ed2c838aaf483fcd58abdfa0ff08Santos Cordon    int getSubIdForPhoneAccount(in PhoneAccount phoneAccount);
1041f1fb39763d87dabe254b6ed64ac8f20145035bc0Stuart Scott
1042f1fb39763d87dabe254b6ed64ac8f20145035bc0Stuart Scott    void factoryReset(int subId);
10437ff76d637f5ad49838e9d4a1570c762a187ed4d1Narayan Kamath
10447ff76d637f5ad49838e9d4a1570c762a187ed4d1Narayan Kamath    /**
10457ff76d637f5ad49838e9d4a1570c762a187ed4d1Narayan Kamath     * An estimate of the users's current locale based on the default SIM.
10467ff76d637f5ad49838e9d4a1570c762a187ed4d1Narayan Kamath     *
10477ff76d637f5ad49838e9d4a1570c762a187ed4d1Narayan Kamath     * The returned string will be a well formed BCP-47 language tag, or {@code null}
10487ff76d637f5ad49838e9d4a1570c762a187ed4d1Narayan Kamath     * if no locale could be derived.
10497ff76d637f5ad49838e9d4a1570c762a187ed4d1Narayan Kamath     */
10507ff76d637f5ad49838e9d4a1570c762a187ed4d1Narayan Kamath    String getLocaleFromDefaultSim();
10515c728994311c40821604c6711171e860776659a6Prerepa Viswanadham
10525c728994311c40821604c6711171e860776659a6Prerepa Viswanadham    /**
1053010bf374d8145528f8733dfa6ef101b15de23a8dAdam Lesinski     * Requests the modem activity info asynchronously.
1054010bf374d8145528f8733dfa6ef101b15de23a8dAdam Lesinski     * The implementor is expected to reply with the
1055010bf374d8145528f8733dfa6ef101b15de23a8dAdam Lesinski     * {@link android.telephony.ModemActivityInfo} object placed into the Bundle with the key
1056010bf374d8145528f8733dfa6ef101b15de23a8dAdam Lesinski     * {@link android.telephony.TelephonyManager#MODEM_ACTIVITY_RESULT_KEY}.
1057010bf374d8145528f8733dfa6ef101b15de23a8dAdam Lesinski     * The result code is ignored.
10585c728994311c40821604c6711171e860776659a6Prerepa Viswanadham     */
1059010bf374d8145528f8733dfa6ef101b15de23a8dAdam Lesinski    oneway void requestModemActivityInfo(in ResultReceiver result);
106039daf8d6f14a01d2854352fe08d14195f7a2056bJack Yu
106139daf8d6f14a01d2854352fe08d14195f7a2056bJack Yu    /**
106239daf8d6f14a01d2854352fe08d14195f7a2056bJack Yu     * Get the service state on specified subscription
106339daf8d6f14a01d2854352fe08d14195f7a2056bJack Yu     * @param subId Subscription id
106439daf8d6f14a01d2854352fe08d14195f7a2056bJack Yu     * @param callingPackage The package making the call
106539daf8d6f14a01d2854352fe08d14195f7a2056bJack Yu     * @return Service state on specified subscription.
106639daf8d6f14a01d2854352fe08d14195f7a2056bJack Yu     */
106739daf8d6f14a01d2854352fe08d14195f7a2056bJack Yu    ServiceState getServiceStateForSubscriber(int subId, String callingPackage);
1068740fb3bcca1366e20783dd7656d3ffe6ea3a744eNancy Chen
1069740fb3bcca1366e20783dd7656d3ffe6ea3a744eNancy Chen    /**
1070740fb3bcca1366e20783dd7656d3ffe6ea3a744eNancy Chen     * Returns the URI for the per-account voicemail ringtone set in Phone settings.
1071740fb3bcca1366e20783dd7656d3ffe6ea3a744eNancy Chen     *
1072740fb3bcca1366e20783dd7656d3ffe6ea3a744eNancy Chen     * @param accountHandle The handle for the {@link PhoneAccount} for which to retrieve the
1073740fb3bcca1366e20783dd7656d3ffe6ea3a744eNancy Chen     * voicemail ringtone.
1074740fb3bcca1366e20783dd7656d3ffe6ea3a744eNancy Chen     * @return The URI for the ringtone to play when receiving a voicemail from a specific
1075740fb3bcca1366e20783dd7656d3ffe6ea3a744eNancy Chen     * PhoneAccount.
1076740fb3bcca1366e20783dd7656d3ffe6ea3a744eNancy Chen     */
1077740fb3bcca1366e20783dd7656d3ffe6ea3a744eNancy Chen    Uri getVoicemailRingtoneUri(in PhoneAccountHandle accountHandle);
1078740fb3bcca1366e20783dd7656d3ffe6ea3a744eNancy Chen
1079740fb3bcca1366e20783dd7656d3ffe6ea3a744eNancy Chen    /**
1080740fb3bcca1366e20783dd7656d3ffe6ea3a744eNancy Chen     * Returns whether vibration is set for voicemail notification in Phone settings.
1081740fb3bcca1366e20783dd7656d3ffe6ea3a744eNancy Chen     *
1082740fb3bcca1366e20783dd7656d3ffe6ea3a744eNancy Chen     * @param accountHandle The handle for the {@link PhoneAccount} for which to retrieve the
1083740fb3bcca1366e20783dd7656d3ffe6ea3a744eNancy Chen     * voicemail vibration setting.
1084740fb3bcca1366e20783dd7656d3ffe6ea3a744eNancy Chen     * @return {@code true} if the vibration is set for this PhoneAccount, {@code false} otherwise.
1085740fb3bcca1366e20783dd7656d3ffe6ea3a744eNancy Chen     */
1086740fb3bcca1366e20783dd7656d3ffe6ea3a744eNancy Chen    boolean isVoicemailVibrationEnabled(in PhoneAccountHandle accountHandle);
10874ec6368f13a53906757283d50a17ed3ed43eccc4Amith Yamasani
10884ec6368f13a53906757283d50a17ed3ed43eccc4Amith Yamasani    /**
10894ec6368f13a53906757283d50a17ed3ed43eccc4Amith Yamasani     * Returns a list of packages that have carrier privileges.
10904ec6368f13a53906757283d50a17ed3ed43eccc4Amith Yamasani     */
10914ec6368f13a53906757283d50a17ed3ed43eccc4Amith Yamasani    List<String> getPackagesWithCarrierPrivileges();
10922da9b2b8bfb01744d53c14a65a80035d3c8d7b2fYouhan Wang
10932da9b2b8bfb01744d53c14a65a80035d3c8d7b2fYouhan Wang    /**
10942da9b2b8bfb01744d53c14a65a80035d3c8d7b2fYouhan Wang     * Return the application ID for the app type.
10952da9b2b8bfb01744d53c14a65a80035d3c8d7b2fYouhan Wang     *
10962da9b2b8bfb01744d53c14a65a80035d3c8d7b2fYouhan Wang     * @param subId the subscription ID that this request applies to.
10972da9b2b8bfb01744d53c14a65a80035d3c8d7b2fYouhan Wang     * @param appType the uicc app type,
10982da9b2b8bfb01744d53c14a65a80035d3c8d7b2fYouhan Wang     * @return Application ID for specificied app type or null if no uicc or error.
10992da9b2b8bfb01744d53c14a65a80035d3c8d7b2fYouhan Wang     */
11002da9b2b8bfb01744d53c14a65a80035d3c8d7b2fYouhan Wang    String getAidForAppType(int subId, int appType);
11017717acd174795936756226a4bc367fdcb7b49c5dYouhan Wang
11027717acd174795936756226a4bc367fdcb7b49c5dYouhan Wang    /**
11037717acd174795936756226a4bc367fdcb7b49c5dYouhan Wang    * Return the Electronic Serial Number.
11047717acd174795936756226a4bc367fdcb7b49c5dYouhan Wang    *
11057717acd174795936756226a4bc367fdcb7b49c5dYouhan Wang    * Requires that the calling app has READ_PRIVILEGED_PHONE_STATE permission
11067717acd174795936756226a4bc367fdcb7b49c5dYouhan Wang    *
11077717acd174795936756226a4bc367fdcb7b49c5dYouhan Wang    * @param subId the subscription ID that this request applies to.
11087717acd174795936756226a4bc367fdcb7b49c5dYouhan Wang    * @return ESN or null if error.
11097717acd174795936756226a4bc367fdcb7b49c5dYouhan Wang    * @hide
11107717acd174795936756226a4bc367fdcb7b49c5dYouhan Wang    */
11117717acd174795936756226a4bc367fdcb7b49c5dYouhan Wang    String getEsn(int subId);
111206e1ae1a51b9fb8c65e610c22f86380c60a803a0Sanket Padawe
111306e1ae1a51b9fb8c65e610c22f86380c60a803a0Sanket Padawe    /**
111406e1ae1a51b9fb8c65e610c22f86380c60a803a0Sanket Padawe     * Get snapshot of Telephony histograms
111506e1ae1a51b9fb8c65e610c22f86380c60a803a0Sanket Padawe     * @return List of Telephony histograms
111606e1ae1a51b9fb8c65e610c22f86380c60a803a0Sanket Padawe     * Requires Permission:
111706e1ae1a51b9fb8c65e610c22f86380c60a803a0Sanket Padawe     *   {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}
111806e1ae1a51b9fb8c65e610c22f86380c60a803a0Sanket Padawe     * Or the calling app has carrier privileges.
111906e1ae1a51b9fb8c65e610c22f86380c60a803a0Sanket Padawe     */
112006e1ae1a51b9fb8c65e610c22f86380c60a803a0Sanket Padawe    List<TelephonyHistogram> getTelephonyHistograms();
1121bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla}
1122