ITelephony.aidl revision 984dc850b4caeb4470e52bce773935be5305cf8e
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage com.android.internal.telephony; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1963c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawalimport android.content.Intent; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Bundle; 21ed4ca5ca2c40ed2c838aaf483fcd58abdfa0ff08Santos Cordonimport android.telecom.PhoneAccount; 22fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Savilleimport android.telephony.CellInfo; 23a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawalimport android.telephony.IccOpenLogicalChannelResponse; 24a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawalimport android.telephony.NeighboringCellInfo; 252af2d57d578e0c3a2740628e7c6336b19961cc49Wink Savilleimport android.telephony.RadioAccessFamily; 26a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawalimport java.util.List; 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 28aae9216320328e6b865725219a31a029ea46c1b0Sailesh Nepal 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 30767a662ecde33c3979bf02b793d392aca0403162Wink Saville * Interface used to interact with the phone. Mostly this is used by the 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * TelephonyManager class. A few places are still using this directly. 324a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee * Please clean them up if possible and use TelephonyManager instead. 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@hide} 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinterface ITelephony { 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Dial a number. This doesn't place the call. It displays 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the Dialer screen. 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param number the number to be dialed. If null, this 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * would display the Dialer screen with no number pre-filled. 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void dial(String number); 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Place a call to the specified number. 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param number the number to be called. 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 50f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn void call(String callingPackage, String number); 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 534d396052deb54399cbadbeb8abd873df6f3af342Jeff Brown * End call if there is a call in progress, otherwise does nothing. 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether it hung up 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean endCall(); 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 60fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * End call on particular subId or go to the Home screen 61fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 62fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return whether it hung up 63fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 6463f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville boolean endCallForSubscriber(int subId); 65fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 66fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Answer the currently-ringing call. 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * If there's already a current active call, that call will be 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * automatically put on hold. If both lines are currently in use, the 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * current active call will be ended. 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * TODO: provide a flag to let the caller specify what policy to use 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * if both lines are in use. (The current behavior is hardwired to 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * "answer incoming, end ongoing", which is how the CALL button 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * is specced to behave.) 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * TODO: this should be a oneway call (especially since it's called 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * directly from the key queue thread). 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void answerRingingCall(); 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8405e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville * Answer the currently-ringing call on particular subId . 8505e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville * 8605e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville * If there's already a current active call, that call will be 8705e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville * automatically put on hold. If both lines are currently in use, the 8805e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville * current active call will be ended. 8905e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville * 9005e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville * TODO: provide a flag to let the caller specify what policy to use 9105e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville * if both lines are in use. (The current behavior is hardwired to 9205e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville * "answer incoming, end ongoing", which is how the CALL button 9305e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville * is specced to behave.) 9405e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville * 9505e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville * TODO: this should be a oneway call (especially since it's called 9605e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville * directly from the key queue thread). 9705e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville */ 9863f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville void answerRingingCallForSubscriber(int subId); 9905e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville 10005e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville /** 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Silence the ringer if an incoming call is currently ringing. 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * (If vibrating, stop the vibrator also.) 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * It's safe to call this if the ringer has already been silenced, or 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * even if there's no incoming call. (If so, this method will do nothing.) 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * TODO: this should be a oneway call too (see above). 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * (Actually *all* the methods here that return void can 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * probably be oneway.) 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void silenceRinger(); 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Check if we are in either an active or holding call 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return true if the phone state is OFFHOOK. 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isOffhook(); 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 120fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Check if a particular subId has an active or holding call 121fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * 122fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 123fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return true if the phone state is OFFHOOK. 124fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 12563f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville boolean isOffhookForSubscriber(int subId); 126fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 127fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 128fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Check if an incoming phone call is ringing or call waiting 129fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * on a particular subId. 130fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * 131fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 132fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return true if the phone state is RINGING. 133fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 13463f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville boolean isRingingForSubscriber(int subId); 135fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 136fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Check if an incoming phone call is ringing or call waiting. 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return true if the phone state is RINGING. 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isRinging(); 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Check if the phone is idle. 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return true if the phone state is IDLE. 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isIdle(); 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 149fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Check if the phone is idle on a particular subId. 150fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * 151fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 152fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return true if the phone state is IDLE. 153fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 15463f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville boolean isIdleForSubscriber(int subId); 155fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 156fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Check to see if the radio is on or not. 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return returns true if the radio is on. 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isRadioOn(); 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 163fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Check to see if the radio is on or not on particular subId. 164fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 165fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return returns true if the radio is on. 166fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 16763f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville boolean isRadioOnForSubscriber(int subId); 168fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 169fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Check if the SIM pin lock is enabled. 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return true if the SIM pin lock is enabled. 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isSimPinEnabled(); 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Supply a pin to unlock the SIM. Blocks until a result is determined. 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param pin The pin to check. 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the operation was a success. 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean supplyPin(String pin); 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 183fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Supply a pin to unlock the SIM for particular subId. 184fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Blocks until a result is determined. 185fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param pin The pin to check. 186fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 187fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return whether the operation was a success. 188fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 18963f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville boolean supplyPinForSubscriber(int subId, String pin); 190fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 191fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 19298c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang * Supply puk to unlock the SIM and set SIM pin to new pin. 19398c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang * Blocks until a result is determined. 19498c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang * @param puk The puk to check. 19598c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang * pin The new pin to be set in SIM 19698c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang * @return whether the operation was a success. 19798c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang */ 19898c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang boolean supplyPuk(String puk, String pin); 19998c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang 20098c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang /** 201fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Supply puk to unlock the SIM and set SIM pin to new pin. 202fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Blocks until a result is determined. 203fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param puk The puk to check. 204fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * pin The new pin to be set in SIM 205fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 206fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return whether the operation was a success. 207fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 20863f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville boolean supplyPukForSubscriber(int subId, String puk, String pin); 209fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 210fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 211b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville * Supply a pin to unlock the SIM. Blocks until a result is determined. 212b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville * Returns a specific success/error code. 213b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville * @param pin The pin to check. 214b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code 215b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville * retValue[1] = number of attempts remaining if known otherwise -1 216b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville */ 217b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville int[] supplyPinReportResult(String pin); 218b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville 219b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville /** 220fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Supply a pin to unlock the SIM. Blocks until a result is determined. 221fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns a specific success/error code. 222fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param pin The pin to check. 223fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code 224fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * retValue[1] = number of attempts remaining if known otherwise -1 225fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 22663f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville int[] supplyPinReportResultForSubscriber(int subId, String pin); 227fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 228fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 229b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville * Supply puk to unlock the SIM and set SIM pin to new pin. 230b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville * Blocks until a result is determined. 231b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville * Returns a specific success/error code 232b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville * @param puk The puk to check 233b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville * pin The pin to check. 234b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code 235b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville * retValue[1] = number of attempts remaining if known otherwise -1 236b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville */ 237b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville int[] supplyPukReportResult(String puk, String pin); 238b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville 239b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville /** 240fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Supply puk to unlock the SIM and set SIM pin to new pin. 241fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Blocks until a result is determined. 242fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns a specific success/error code 243fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param puk The puk to check 244fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * pin The pin to check. 245fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code 246fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * retValue[1] = number of attempts remaining if known otherwise -1 247fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 24863f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville int[] supplyPukReportResultForSubscriber(int subId, String puk, String pin); 249fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 250fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Handles PIN MMI commands (PIN/PIN2/PUK/PUK2), which are initiated 2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * without SEND (so <code>dial</code> is not appropriate). 253767a662ecde33c3979bf02b793d392aca0403162Wink Saville * 2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param dialString the MMI command to be executed. 2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return true if MMI command is executed. 2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean handlePinMmi(String dialString); 2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 260fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Handles PIN MMI commands (PIN/PIN2/PUK/PUK2), which are initiated 261fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * without SEND (so <code>dial</code> is not appropriate) for 262fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * a particular subId. 263fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param dialString the MMI command to be executed. 264fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 265fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return true if MMI command is executed. 266fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 26763f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville boolean handlePinMmiForSubscriber(int subId, String dialString); 268fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 269fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Toggles the radio on or off. 2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void toggleRadioOnOff(); 2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 275fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Toggles the radio on or off on particular subId. 276fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 277fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 27863f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville void toggleRadioOnOffForSubscriber(int subId); 279fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 280fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set the radio to on or off 2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean setRadio(boolean turnOn); 2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 286fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Set the radio to on or off on particular subId. 287fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 288fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 28963f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville boolean setRadioForSubscriber(int subId, boolean turnOn); 290fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 291fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 29245ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville * Set the radio to on or off unconditionally 29345ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville */ 29445ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville boolean setRadioPower(boolean turnOn); 29545ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville 29645ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville /** 2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Request to update location information in service state 2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void updateServiceLocation(); 3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 302fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Request to update location information for a subscrition in service state 303fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 304fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 30563f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville void updateServiceLocationForSubscriber(int subId); 306fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 307fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Enable location update notifications. 3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void enableLocationUpdates(); 3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 313fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Enable location update notifications. 314fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 315fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 31663f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville void enableLocationUpdatesForSubscriber(int subId); 317fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 318fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Disable location update notifications. 3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void disableLocationUpdates(); 3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 324fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Disable location update notifications. 325fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 326fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 32763f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville void disableLocationUpdatesForSubscriber(int subId); 328fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 329fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Allow mobile data connections. 3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean enableDataConnectivity(); 3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Disallow mobile data connections. 3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean disableDataConnectivity(); 3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Report whether data connectivity is possible. 3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isDataConnectivityPossible(); 3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Bundle getCellLocation(); 3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the neighboring cell information of the device. 3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 349f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn List<NeighboringCellInfo> getNeighboringCellInfo(String callingPkg); 3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getCallState(); 352fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 353fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 354fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns the call state for a subId. 355fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 35663f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville int getCallStateForSubscriber(int subId); 357fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getDataActivity(); 3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getDataState(); 360767a662ecde33c3979bf02b793d392aca0403162Wink Saville 361767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** 362767a662ecde33c3979bf02b793d392aca0403162Wink Saville * Returns the current active phone type as integer. 363767a662ecde33c3979bf02b793d392aca0403162Wink Saville * Returns TelephonyManager.PHONE_TYPE_CDMA if RILConstants.CDMA_PHONE 364767a662ecde33c3979bf02b793d392aca0403162Wink Saville * and TelephonyManager.PHONE_TYPE_GSM if RILConstants.GSM_PHONE 365767a662ecde33c3979bf02b793d392aca0403162Wink Saville */ 366767a662ecde33c3979bf02b793d392aca0403162Wink Saville int getActivePhoneType(); 367767a662ecde33c3979bf02b793d392aca0403162Wink Saville 368e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 369fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns the current active phone type as integer for particular subId. 370fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns TelephonyManager.PHONE_TYPE_CDMA if RILConstants.CDMA_PHONE 371fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * and TelephonyManager.PHONE_TYPE_GSM if RILConstants.GSM_PHONE 372fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 373fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 37463f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville int getActivePhoneTypeForSubscriber(int subId); 375fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 376fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 377e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * Returns the CDMA ERI icon index to display 378e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 379e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville int getCdmaEriIconIndex(); 380e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 381e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 382fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns the CDMA ERI icon index to display on particular subId. 383fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 384fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 38563f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville int getCdmaEriIconIndexForSubscriber(int subId); 386fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 387fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 388e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * Returns the CDMA ERI icon mode, 389e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * 0 - ON 390e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * 1 - FLASHING 391e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 392e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville int getCdmaEriIconMode(); 393e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 394e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 395fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns the CDMA ERI icon mode on particular subId, 396fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * 0 - ON 397fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * 1 - FLASHING 398fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 399fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 40063f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville int getCdmaEriIconModeForSubscriber(int subId); 401fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 402fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 403e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * Returns the CDMA ERI text, 404e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 405e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville String getCdmaEriText(); 406e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 407dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville /** 408fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns the CDMA ERI text for particular subId, 409fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 410fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 41163f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville String getCdmaEriTextForSubscriber(int subId); 412fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 413fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 4144d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville * Returns true if OTA service provisioning needs to run. 4154d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville * Only relevant on some technologies, others will always 4164d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville * return false. 417767be5f0b929cc1eeb8a7d5aa7a02e228053e9bbJim Miller */ 4184d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville boolean needsOtaServiceProvisioning(); 419767be5f0b929cc1eeb8a7d5aa7a02e228053e9bbJim Miller 420767be5f0b929cc1eeb8a7d5aa7a02e228053e9bbJim Miller /** 4215c1a63c2235c36ce0b520fa88a9d21ffe255756eShishir Agrawal * Sets the voicemail number for a particular subscriber. 4225c1a63c2235c36ce0b520fa88a9d21ffe255756eShishir Agrawal */ 4235c1a63c2235c36ce0b520fa88a9d21ffe255756eShishir Agrawal boolean setVoiceMailNumber(int subId, String alphaTag, String number); 4245c1a63c2235c36ce0b520fa88a9d21ffe255756eShishir Agrawal 4255c1a63c2235c36ce0b520fa88a9d21ffe255756eShishir Agrawal /** 426dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville * Returns the unread count of voicemails 427dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville */ 428ce099c3226b33b43e0dd5d1f24347b14a2223ee1David Krause int getVoiceMessageCount(); 429dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville 430ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe /** 431fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns the unread count of voicemails for a subId. 432fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 433fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns the unread count of voicemails 434fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 43563f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville int getVoiceMessageCountForSubscriber(int subId); 436fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 437fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 4380dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville * Returns the network type for data transmission 439ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe */ 440ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe int getNetworkType(); 44198c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang 442e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville /** 443fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns the network type of a subId. 444fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 445fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns the network type 446fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 44763f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville int getNetworkTypeForSubscriber(int subId); 448fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 449fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 4500dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville * Returns the network type for data transmission 4510dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville */ 4520dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville int getDataNetworkType(); 4530dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville 4540dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville /** 455fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns the data network type of a subId 456fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 457fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns the network type 458fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 45963f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville int getDataNetworkTypeForSubscriber(int subId); 460fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 461fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 4620dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville * Returns the network type for voice 4630dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville */ 4640dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville int getVoiceNetworkType(); 4650dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville 4660dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville /** 467fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns the voice network type of a subId 468fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 469fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns the network type 470fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 47163f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville int getVoiceNetworkTypeForSubscriber(int subId); 472fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 473fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 474e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville * Return true if an ICC card is present 475e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville */ 476e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville boolean hasIccCard(); 4775e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville 4785e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville /** 479fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Return true if an ICC card is present for a subId. 480fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param slotId user preferred slotId. 481fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Return true if an ICC card is present 482fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 48363f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville boolean hasIccCardUsingSlotId(int slotId); 484fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 485fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 4865e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville * Return if the current radio is LTE on CDMA. This 4875e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville * is a tri-state return value as for a period of time 4885e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville * the mode may be unknown. 4895e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville * 4905e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville * @return {@link Phone#LTE_ON_CDMA_UNKNOWN}, {@link Phone#LTE_ON_CDMA_FALSE} 4915e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville * or {@link PHone#LTE_ON_CDMA_TRUE} 4925e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville */ 4935e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville int getLteOnCdmaMode(); 494963db55d59a170f4b17ff907c96615a19ef6fe17John Wang 495963db55d59a170f4b17ff907c96615a19ef6fe17John Wang /** 496fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Return if the current radio is LTE on CDMA. This 497fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * is a tri-state return value as for a period of time 498fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * the mode may be unknown. 499fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * 500fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return {@link Phone#LTE_ON_CDMA_UNKNOWN}, {@link Phone#LTE_ON_CDMA_FALSE} 501fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * or {@link PHone#LTE_ON_CDMA_TRUE} 502fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 50363f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville int getLteOnCdmaModeForSubscriber(int subId); 504fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 505fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 506963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * Returns the all observed cell information of the device. 507963db55d59a170f4b17ff907c96615a19ef6fe17John Wang */ 508963db55d59a170f4b17ff907c96615a19ef6fe17John Wang List<CellInfo> getAllCellInfo(); 509094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville 510094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville /** 511094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville * Sets minimum time in milli-seconds between onCellInfoChanged 512094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville */ 513094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville void setCellInfoListRate(int rateInMillis); 514767a662ecde33c3979bf02b793d392aca0403162Wink Saville 51557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal /** 516fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * get default sim 517fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return sim id 518fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 519fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville int getDefaultSim(); 520fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 521fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 52257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * Opens a logical channel to the ICC card. 52357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * 52457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * Input parameters equivalent to TS 27.007 AT+CCHO command. 52557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * 52657f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * @param AID Application id. See ETSI 102.221 and 101.220. 527a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @return an IccOpenLogicalChannelResponse object. 52857f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal */ 529a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal IccOpenLogicalChannelResponse iccOpenLogicalChannel(String AID); 53057f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal 53157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal /** 53257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * Closes a previously opened logical channel to the ICC card. 53357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * 53457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * Input parameters equivalent to TS 27.007 AT+CCHC command. 53557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * 53657f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * @param channel is the channel id to be closed as retruned by a 53757f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * successful iccOpenLogicalChannel. 53857f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * @return true if the channel was closed successfully. 53957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal */ 54057f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal boolean iccCloseLogicalChannel(int channel); 54157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal 54257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal /** 54357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * Transmit an APDU to the ICC card over a logical channel. 54457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * 54557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * Input parameters equivalent to TS 27.007 AT+CGLA command. 54657f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * 54757f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * @param channel is the channel id to be closed as retruned by a 54857f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * successful iccOpenLogicalChannel. 54957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * @param cla Class of the APDU command. 55057f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * @param instruction Instruction of the APDU command. 55157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * @param p1 P1 value of the APDU command. 55257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * @param p2 P2 value of the APDU command. 55357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * @param p3 P3 value of the APDU command. If p3 is negative a 4 byte APDU 55457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * is sent to the SIM. 55557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * @param data Data to be sent with the APDU. 55657f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * @return The APDU response from the ICC card with the status appended at 55743d94347a6feb14870a4ffd7682a816210e5e676Shishir Agrawal * the end. 55857f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal */ 559375890841df7aad36a042861f6a70f11e1f32766Shishir Agrawal String iccTransmitApduLogicalChannel(int channel, int cla, int instruction, 56057f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal int p1, int p2, int p3, String data); 5618f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby 5628f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby /** 563a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * Transmit an APDU to the ICC card over the basic channel. 564a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * 565a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * Input parameters equivalent to TS 27.007 AT+CSIM command. 566a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * 567a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @param cla Class of the APDU command. 568a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @param instruction Instruction of the APDU command. 569a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @param p1 P1 value of the APDU command. 570a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @param p2 P2 value of the APDU command. 571a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @param p3 P3 value of the APDU command. If p3 is negative a 4 byte APDU 572a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * is sent to the SIM. 573a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @param data Data to be sent with the APDU. 574a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @return The APDU response from the ICC card with the status appended at 57543d94347a6feb14870a4ffd7682a816210e5e676Shishir Agrawal * the end. 576a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal */ 577a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal String iccTransmitApduBasicChannel(int cla, int instruction, 578a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal int p1, int p2, int p3, String data); 579a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal 580a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal /** 581a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * Returns the response APDU for a command APDU sent through SIM_IO. 582a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * 583a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @param fileID 584a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @param command 585a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @param p1 P1 value of the APDU command. 586a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @param p2 P2 value of the APDU command. 587a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @param p3 P3 value of the APDU command. 588a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @param filePath 589a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @return The APDU response. 590a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal */ 591a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal byte[] iccExchangeSimIO(int fileID, int command, int p1, int p2, int p3, 592a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal String filePath); 593a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal 594a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal /** 595b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton * Send ENVELOPE to the SIM and returns the response. 596210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton * 597210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton * @param contents String containing SAT/USAT response in hexadecimal 598210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton * format starting with command tag. See TS 102 223 for 599210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton * details. 600b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton * @return The APDU response from the ICC card, with the last 4 bytes 601b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton * being the status word. If the command fails, returns an empty 602b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton * string. 603210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton */ 604b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton String sendEnvelopeWithStatus(String content); 605210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton 606210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton /** 6078f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * Read one of the NV items defined in {@link RadioNVItems} / {@code ril_nv_items.h}. 6088f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * Used for device configuration by some CDMA operators. 6098f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * 6108f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * @param itemID the ID of the item to read. 6118f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * @return the NV item as a String, or null on any failure. 6128f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby */ 6138f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby String nvReadItem(int itemID); 6148f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby 6158f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby /** 6168f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * Write one of the NV items defined in {@link RadioNVItems} / {@code ril_nv_items.h}. 6178f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * Used for device configuration by some CDMA operators. 6188f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * 6198f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * @param itemID the ID of the item to read. 6208f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * @param itemValue the value to write, as a String. 6218f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * @return true on success; false on any failure. 6228f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby */ 6238f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby boolean nvWriteItem(int itemID, String itemValue); 6248f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby 6258f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby /** 6268f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * Update the CDMA Preferred Roaming List (PRL) in the radio NV storage. 6278f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * Used for device configuration by some CDMA operators. 6288f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * 6298f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * @param preferredRoamingList byte array containing the new PRL. 6308f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * @return true on success; false on any failure. 6318f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby */ 6328f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby boolean nvWriteCdmaPrl(in byte[] preferredRoamingList); 6338f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby 6348f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby /** 635786e71ab11f2d89afffc9db7473f16206395c813Jake Hamby * Perform the specified type of NV config reset. The radio will be taken offline 636786e71ab11f2d89afffc9db7473f16206395c813Jake Hamby * and the device must be rebooted after the operation. Used for device 637786e71ab11f2d89afffc9db7473f16206395c813Jake Hamby * configuration by some CDMA operators. 6388f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * 6398f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * @param resetType the type of reset to perform (1 == factory reset; 2 == NV-only reset). 6408f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * @return true on success; false on any failure. 6418f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby */ 6428f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby boolean nvResetConfig(int resetType); 6438f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby 6449bbb37116d2c5b597f9b5e3094ff328971e03c0bEvan Charlton /* 6451365703d4964466472904dc84117a0946d9e1a44Junda Liu * Get the calculated preferred network type. 6461365703d4964466472904dc84117a0946d9e1a44Junda Liu * Used for device configuration by some CDMA operators. 6471365703d4964466472904dc84117a0946d9e1a44Junda Liu * 6481365703d4964466472904dc84117a0946d9e1a44Junda Liu * @return the calculated preferred network type, defined in RILConstants.java. 6491365703d4964466472904dc84117a0946d9e1a44Junda Liu */ 6501365703d4964466472904dc84117a0946d9e1a44Junda Liu int getCalculatedPreferredNetworkType(); 6511365703d4964466472904dc84117a0946d9e1a44Junda Liu 6521365703d4964466472904dc84117a0946d9e1a44Junda Liu /* 6534a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby * Get the preferred network type. 6544a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby * Used for device configuration by some CDMA operators. 6554a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby * 656984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott * @param subId the id of the subscription to query. 6574a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby * @return the preferred network type, defined in RILConstants.java. 6584a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby */ 659984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott int getPreferredNetworkType(int subId); 6604a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby 6614a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby /** 66238531581fc19f9172fabe56047b326e5dab88625Junda Liu * Check TETHER_DUN_REQUIRED and TETHER_DUN_APN settings, net.tethering.noprovisioning 66338531581fc19f9172fabe56047b326e5dab88625Junda Liu * SystemProperty, and config_tether_apndata to decide whether DUN APN is required for 66438531581fc19f9172fabe56047b326e5dab88625Junda Liu * tethering. 66538531581fc19f9172fabe56047b326e5dab88625Junda Liu * 66638531581fc19f9172fabe56047b326e5dab88625Junda Liu * @return 0: Not required. 1: required. 2: Not set. 66738531581fc19f9172fabe56047b326e5dab88625Junda Liu */ 66838531581fc19f9172fabe56047b326e5dab88625Junda Liu int getTetherApnRequired(); 66938531581fc19f9172fabe56047b326e5dab88625Junda Liu 67038531581fc19f9172fabe56047b326e5dab88625Junda Liu /** 671984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott * Set the network selection mode to automatic. 672984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott * 673984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott * @param subId the id of the subscription to update. 674984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott */ 675984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott void setNetworkSelectionModeAutomatic(int subId); 676984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott 677984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott /** 6784a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby * Set the preferred network type. 6794a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby * Used for device configuration by some CDMA operators. 6804a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby * 681984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott * @param subId the id of the subscription to update. 6824a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby * @param networkType the preferred network type, defined in RILConstants.java. 6834a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby * @return true on success; false on any failure. 6844a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby */ 685984dc850b4caeb4470e52bce773935be5305cf8eStuart Scott boolean setPreferredNetworkType(int subId, int networkType); 686afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt 687afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt /** 688afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt * User enable/disable Mobile Data. 689afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt * 690afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt * @param enable true to turn on, else false 691afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt */ 69236ffb0494dd1045c164b7479b68165e206f8c759Wink Saville void setDataEnabled(int subId, boolean enable); 693afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt 694afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt /** 695afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt * Get the user enabled state of Mobile Data. 696afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt * 697afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt * @return true on enabled 698afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt */ 69936ffb0494dd1045c164b7479b68165e206f8c759Wink Saville boolean getDataEnabled(int subId); 700fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 701fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 702fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Get P-CSCF address from PCO after data connection is established or modified. 703e647099e14114475e9a2827a10dab2d2e36308c4ram * @param apnType the apnType, "ims" for IMS APN, "emergency" for EMERGENCY APN 704fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 705e647099e14114475e9a2827a10dab2d2e36308c4ram String[] getPcscfAddress(String apnType); 706fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 707fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 708fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Set IMS registration state 709fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 710fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville void setImsRegistrationState(boolean registered); 711fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 712762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal /** 7132b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu * Return MDN string for CDMA phone. 7142b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu * @param subId user preferred subId. 7152b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu */ 71663f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville String getCdmaMdn(int subId); 7172b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu 7182b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu /** 7192b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu * Return MIN string for CDMA phone. 7202b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu * @param subId user preferred subId. 7212b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu */ 72263f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville String getCdmaMin(int subId); 7232b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu 7242b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu /** 725762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal * Has the calling application been granted special privileges by the carrier. 726762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal * 727762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal * If any of the packages in the calling UID has carrier privileges, the 728762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal * call will return true. This access is granted by the owner of the UICC 729762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal * card and does not depend on the registered carrier. 730762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal * 731762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal * TODO: Add a link to documentation. 732762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal * 733fc3646f58e5851e7a483b8388bdd826078166d10Shishir Agrawal * @return carrier privilege status defined in TelephonyManager. 734762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal */ 735ab57c29092eb9185375de86d82ff32e6079f5cecShishir Agrawal int getCarrierPrivilegeStatus(); 736142529702dad9a6612271f487d500db80173ba7bJunda Liu 737142529702dad9a6612271f487d500db80173ba7bJunda Liu /** 738142529702dad9a6612271f487d500db80173ba7bJunda Liu * Similar to above, but check for pkg whose name is pkgname. 739142529702dad9a6612271f487d500db80173ba7bJunda Liu */ 74056be215bcc5df95447c49d99915c299965b44207Shishir Agrawal int checkCarrierPrivilegesForPackage(String pkgname); 741f9aefdb534c6cb2af22dfb7614a1c15c2d67dd9cDerek Tan 742f9aefdb534c6cb2af22dfb7614a1c15c2d67dd9cDerek Tan /** 74363c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal * Returns the package name of the carrier apps that should handle the input intent. 74463c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal * 74563c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal * @param packageManager PackageManager for getting receivers. 7463892fc0349a91097f53152eaf2801dfebb2066caDiego Pontoriero * @param intent Intent that will be sent. 74763c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal * @return list of carrier app package names that can handle the intent. 74863c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal * Returns null if there is an error and an empty list if there 74963c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal * are no matching packages. 75063c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal */ 7513892fc0349a91097f53152eaf2801dfebb2066caDiego Pontoriero List<String> getCarrierPackageNamesForIntent(in Intent intent); 75263c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal 75363c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal /** 7542bae510ccef2da7dd767f8148d4e3539037f4aaaDerek Tan * Set the line 1 phone number string and its alphatag for the current ICCID 7552bae510ccef2da7dd767f8148d4e3539037f4aaaDerek Tan * for display purpose only, for example, displayed in Phone Status. It won't 7562bae510ccef2da7dd767f8148d4e3539037f4aaaDerek Tan * change the actual MSISDN/MDN. To unset alphatag or number, pass in a null 7572bae510ccef2da7dd767f8148d4e3539037f4aaaDerek Tan * value. 758818631b679171ffb49eaa641bee06b9c953651daDerek Tan * 759818631b679171ffb49eaa641bee06b9c953651daDerek Tan * @param subId the subscriber that the alphatag and dialing number belongs to. 760818631b679171ffb49eaa641bee06b9c953651daDerek Tan * @param alphaTag alpha-tagging of the dailing nubmer 761818631b679171ffb49eaa641bee06b9c953651daDerek Tan * @param number The dialing number 7620201a6f6f16a872405a5f9ee65026e948eb162d0Shishir Agrawal * @return true if the operation was executed correctly. 763818631b679171ffb49eaa641bee06b9c953651daDerek Tan */ 7640201a6f6f16a872405a5f9ee65026e948eb162d0Shishir Agrawal boolean setLine1NumberForDisplayForSubscriber(int subId, String alphaTag, String number); 765818631b679171ffb49eaa641bee06b9c953651daDerek Tan 766818631b679171ffb49eaa641bee06b9c953651daDerek Tan /** 767818631b679171ffb49eaa641bee06b9c953651daDerek Tan * Returns the displayed dialing number string if it was set previously via 768818631b679171ffb49eaa641bee06b9c953651daDerek Tan * {@link #setLine1NumberForDisplay}. Otherwise returns null. 769818631b679171ffb49eaa641bee06b9c953651daDerek Tan * 770818631b679171ffb49eaa641bee06b9c953651daDerek Tan * @param subId whose dialing number for line 1 is returned. 771818631b679171ffb49eaa641bee06b9c953651daDerek Tan * @return the displayed dialing number if set, or null if not set. 772818631b679171ffb49eaa641bee06b9c953651daDerek Tan */ 77363f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville String getLine1NumberForDisplay(int subId); 774818631b679171ffb49eaa641bee06b9c953651daDerek Tan 775818631b679171ffb49eaa641bee06b9c953651daDerek Tan /** 776818631b679171ffb49eaa641bee06b9c953651daDerek Tan * Returns the displayed alphatag of the dialing number if it was set 777818631b679171ffb49eaa641bee06b9c953651daDerek Tan * previously via {@link #setLine1NumberForDisplay}. Otherwise returns null. 778818631b679171ffb49eaa641bee06b9c953651daDerek Tan * 779818631b679171ffb49eaa641bee06b9c953651daDerek Tan * @param subId whose alphatag associated with line 1 is returned. 780818631b679171ffb49eaa641bee06b9c953651daDerek Tan * @return the displayed alphatag of the dialing number if set, or null if 781818631b679171ffb49eaa641bee06b9c953651daDerek Tan * not set. 782818631b679171ffb49eaa641bee06b9c953651daDerek Tan */ 78363f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville String getLine1AlphaTagForDisplay(int subId); 78486578cca383562c72751d747905280afdeb2bdfbShishir Agrawal 7853256601f5e4d94713f59e97b9d4912875c1bdcafJeff Sharkey String[] getMergedSubscriberIds(); 7863256601f5e4d94713f59e97b9d4912875c1bdcafJeff Sharkey 78786578cca383562c72751d747905280afdeb2bdfbShishir Agrawal /** 788d2cfa92146ecfa5e00d4a3ce8e63b1a588845fe2Shishir Agrawal * Override the operator branding for the current ICCID. 78986578cca383562c72751d747905280afdeb2bdfbShishir Agrawal * 790d2cfa92146ecfa5e00d4a3ce8e63b1a588845fe2Shishir Agrawal * Once set, whenever the SIM is present in the device, the service 79186578cca383562c72751d747905280afdeb2bdfbShishir Agrawal * provider name (SPN) and the operator name will both be replaced by the 79286578cca383562c72751d747905280afdeb2bdfbShishir Agrawal * brand value input. To unset the value, the same function should be 79386578cca383562c72751d747905280afdeb2bdfbShishir Agrawal * called with a null brand value. 79486578cca383562c72751d747905280afdeb2bdfbShishir Agrawal * 79586578cca383562c72751d747905280afdeb2bdfbShishir Agrawal * <p>Requires Permission: 79686578cca383562c72751d747905280afdeb2bdfbShishir Agrawal * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE} 79786578cca383562c72751d747905280afdeb2bdfbShishir Agrawal * or has to be carrier app - see #hasCarrierPrivileges. 79886578cca383562c72751d747905280afdeb2bdfbShishir Agrawal * 79986578cca383562c72751d747905280afdeb2bdfbShishir Agrawal * @param brand The brand name to display/set. 80086578cca383562c72751d747905280afdeb2bdfbShishir Agrawal * @return true if the operation was executed correctly. 80186578cca383562c72751d747905280afdeb2bdfbShishir Agrawal */ 802d2cfa92146ecfa5e00d4a3ce8e63b1a588845fe2Shishir Agrawal boolean setOperatorBrandOverride(String brand); 8033099c831441e861328cd4965011c854e060ce56aSteven Liu 8043099c831441e861328cd4965011c854e060ce56aSteven Liu /** 8055fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal * Override the roaming indicator for the current ICCID. 8065fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal * 8075fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal * Using this call, the carrier app (see #hasCarrierPrivileges) can override 8085fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal * the platform's notion of a network operator being considered roaming or not. 8095fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal * The change only affects the ICCID that was active when this call was made. 8105fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal * 8115fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal * If null is passed as any of the input, the corresponding value is deleted. 8125fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal * 8135fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal * <p>Requires that the caller have carrier privilege. See #hasCarrierPrivileges. 8145fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal * 8155fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal * @param gsmRoamingList - List of MCCMNCs to be considered roaming for 3GPP RATs. 8165fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal * @param gsmNonRoamingList - List of MCCMNCs to be considered not roaming for 3GPP RATs. 8175fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal * @param cdmaRoamingList - List of SIDs to be considered roaming for 3GPP2 RATs. 8185fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal * @param cdmaNonRoamingList - List of SIDs to be considered not roaming for 3GPP2 RATs. 8195fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal * @return true if the operation was executed correctly. 8205fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal */ 8215fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal boolean setRoamingOverride(in List<String> gsmRoamingList, 8225fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal in List<String> gsmNonRoamingList, in List<String> cdmaRoamingList, 8235fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal in List<String> cdmaNonRoamingList); 8245fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal 8255fb1118d8c8a19bbbf4abc679b55f08cdfb79ba8Shishir Agrawal /** 8263099c831441e861328cd4965011c854e060ce56aSteven Liu * Returns the result and response from RIL for oem request 8273099c831441e861328cd4965011c854e060ce56aSteven Liu * 8283099c831441e861328cd4965011c854e060ce56aSteven Liu * @param oemReq the data is sent to ril. 8293099c831441e861328cd4965011c854e060ce56aSteven Liu * @param oemResp the respose data from RIL. 8303099c831441e861328cd4965011c854e060ce56aSteven Liu * @return negative value request was not handled or get error 8313099c831441e861328cd4965011c854e060ce56aSteven Liu * 0 request was handled succesfully, but no response data 8323099c831441e861328cd4965011c854e060ce56aSteven Liu * positive value success, data length of response 8333099c831441e861328cd4965011c854e060ce56aSteven Liu */ 8343099c831441e861328cd4965011c854e060ce56aSteven Liu int invokeOemRilRequestRaw(in byte[] oemReq, out byte[] oemResp); 835fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 836bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla /** 837bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla * Check if any mobile Radios need to be shutdown. 838bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla * 839bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla * @return true is any mobile radio needs to be shutdown 840bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla */ 841bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla boolean needMobileRadioShutdown(); 842bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla 843bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla /** 844bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla * Shutdown Mobile Radios 845bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla */ 846bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla void shutdownMobileRadios(); 8472af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville 8482af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville /** 8492af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville * Set phone radio type and access technology. 8502af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville * 8512af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville * @param rafs an RadioAccessFamily array to indicate all phone's 8522af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville * new radio access family. The length of RadioAccessFamily 8532af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville * must equ]]al to phone count. 8542af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville */ 8552af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville void setRadioCapability(in RadioAccessFamily[] rafs); 8562af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville 8572af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville /** 8582af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville * Get phone radio type and access technology. 8592af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville * 8602af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville * @param phoneId which phone you want to get 8612af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville * @return phone radio type and access technology 8622af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville */ 8632af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville int getRadioAccessFamily(in int phoneId); 8644a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee 8654a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee /** 8664a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee * Enables or disables video calling. 8674a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee * 8684a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee * @param enable Whether to enable video calling. 8694a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee */ 8704a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee void enableVideoCalling(boolean enable); 8714a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee 8724a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee /** 8734a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee * Whether video calling has been enabled by the user. 8744a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee * 87567fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee * @return {@code true} if the user has enabled video calling, {@code false} otherwise. 8764a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee */ 8774a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee boolean isVideoCallingEnabled(); 8780b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe 8790303be4a8ac109e52b2581b7c6a94b27c581f84fLibin.Tang@motorola.com /** 88067fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee * Whether the DTMF tone length can be changed. 88167fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee * 88267fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee * @return {@code true} if the DTMF tone length can be changed. 88367fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee */ 88467fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee boolean canChangeDtmfToneLength(); 88567fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee 88667fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee /** 88767fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee * Whether the device is a world phone. 88867fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee * 88967fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee * @return {@code true} if the devices is a world phone. 89067fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee */ 89167fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee boolean isWorldPhone(); 89267fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee 89367fc92bd444e4d8eee0aa7703980aff9185ea1bdAndrew Lee /** 894f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee * Whether the phone supports TTY mode. 895f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee * 896f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee * @return {@code true} if the device supports TTY mode. 897f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee */ 898f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee boolean isTtyModeSupported(); 899f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee 900f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee /** 901f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee * Whether the phone supports hearing aid compatibility. 902f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee * 903f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee * @return {@code true} if the device supports hearing aid compatibility. 904f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee */ 905f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee boolean isHearingAidCompatibilitySupported(); 906f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee 907f3c10020e2b76f20adb90d250ab4ed4e20e348d2Andrew Lee /** 9080303be4a8ac109e52b2581b7c6a94b27c581f84fLibin.Tang@motorola.com * Get IMS Registration Status 9090303be4a8ac109e52b2581b7c6a94b27c581f84fLibin.Tang@motorola.com */ 9100303be4a8ac109e52b2581b7c6a94b27c581f84fLibin.Tang@motorola.com boolean isImsRegistered(); 9110b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe 9120b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe /** 91342eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold * Returns the Status of Wi-Fi Calling 91442eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold *@hide 91542eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold */ 91642eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold boolean isWifiCallingEnabled(); 91742eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold 91842eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold /** 91942eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold * Returns the Status of Volte 92042eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold *@hide 92142eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold */ 92242eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold boolean isVolteEnabled(); 92342eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold 92442eadcdf3432e9fd6662ee07316db7726c1eabbfNathan Harold /** 9250b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe * Returns the unique device ID of phone, for example, the IMEI for 9260b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe * GSM and the MEID for CDMA phones. Return null if device ID is not available. 9270b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe * 9280b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe * <p>Requires Permission: 9290b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe * {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE} 9300b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe */ 9310b7f5e81ba06f694df8c8cccaea9e009e3200b4cSanket Padawe String getDeviceId(); 932ed4ca5ca2c40ed2c838aaf483fcd58abdfa0ff08Santos Cordon 933ed4ca5ca2c40ed2c838aaf483fcd58abdfa0ff08Santos Cordon /** 934ed4ca5ca2c40ed2c838aaf483fcd58abdfa0ff08Santos Cordon * Returns the subscription ID associated with the specified PhoneAccount. 935ed4ca5ca2c40ed2c838aaf483fcd58abdfa0ff08Santos Cordon */ 936ed4ca5ca2c40ed2c838aaf483fcd58abdfa0ff08Santos Cordon int getSubIdForPhoneAccount(in PhoneAccount phoneAccount); 937bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla} 938