ITelephony.aidl revision 3256601f5e4d94713f59e97b9d4912875c1bdcaf
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage com.android.internal.telephony; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1963c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawalimport android.content.Intent; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Bundle; 21fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Savilleimport android.telephony.CellInfo; 22a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawalimport android.telephony.IccOpenLogicalChannelResponse; 23a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawalimport android.telephony.NeighboringCellInfo; 242af2d57d578e0c3a2740628e7c6336b19961cc49Wink Savilleimport android.telephony.RadioAccessFamily; 25a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawalimport java.util.List; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 27aae9216320328e6b865725219a31a029ea46c1b0Sailesh Nepal 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 29767a662ecde33c3979bf02b793d392aca0403162Wink Saville * Interface used to interact with the phone. Mostly this is used by the 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * TelephonyManager class. A few places are still using this directly. 314a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee * Please clean them up if possible and use TelephonyManager instead. 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@hide} 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinterface ITelephony { 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Dial a number. This doesn't place the call. It displays 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the Dialer screen. 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param number the number to be dialed. If null, this 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * would display the Dialer screen with no number pre-filled. 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void dial(String number); 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Place a call to the specified number. 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param number the number to be called. 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 49f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn void call(String callingPackage, String number); 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 524d396052deb54399cbadbeb8abd873df6f3af342Jeff Brown * End call if there is a call in progress, otherwise does nothing. 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether it hung up 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean endCall(); 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 59fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * End call on particular subId or go to the Home screen 60fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 61fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return whether it hung up 62fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 6363f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville boolean endCallForSubscriber(int subId); 64fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 65fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Answer the currently-ringing call. 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * If there's already a current active call, that call will be 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * automatically put on hold. If both lines are currently in use, the 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * current active call will be ended. 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * TODO: provide a flag to let the caller specify what policy to use 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * if both lines are in use. (The current behavior is hardwired to 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * "answer incoming, end ongoing", which is how the CALL button 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * is specced to behave.) 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * TODO: this should be a oneway call (especially since it's called 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * directly from the key queue thread). 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void answerRingingCall(); 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8305e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville * Answer the currently-ringing call on particular subId . 8405e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville * 8505e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville * If there's already a current active call, that call will be 8605e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville * automatically put on hold. If both lines are currently in use, the 8705e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville * current active call will be ended. 8805e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville * 8905e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville * TODO: provide a flag to let the caller specify what policy to use 9005e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville * if both lines are in use. (The current behavior is hardwired to 9105e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville * "answer incoming, end ongoing", which is how the CALL button 9205e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville * is specced to behave.) 9305e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville * 9405e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville * TODO: this should be a oneway call (especially since it's called 9505e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville * directly from the key queue thread). 9605e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville */ 9763f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville void answerRingingCallForSubscriber(int subId); 9805e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville 9905e6dde3a0b9ba1eb3d13d511fe2e27a0d10c851Wink Saville /** 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Silence the ringer if an incoming call is currently ringing. 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * (If vibrating, stop the vibrator also.) 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * It's safe to call this if the ringer has already been silenced, or 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * even if there's no incoming call. (If so, this method will do nothing.) 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * TODO: this should be a oneway call too (see above). 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * (Actually *all* the methods here that return void can 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * probably be oneway.) 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void silenceRinger(); 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Check if we are in either an active or holding call 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return true if the phone state is OFFHOOK. 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isOffhook(); 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 119fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Check if a particular subId has an active or holding call 120fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * 121fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 122fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return true if the phone state is OFFHOOK. 123fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 12463f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville boolean isOffhookForSubscriber(int subId); 125fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 126fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 127fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Check if an incoming phone call is ringing or call waiting 128fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * on a particular subId. 129fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * 130fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 131fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return true if the phone state is RINGING. 132fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 13363f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville boolean isRingingForSubscriber(int subId); 134fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 135fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Check if an incoming phone call is ringing or call waiting. 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return true if the phone state is RINGING. 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isRinging(); 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Check if the phone is idle. 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return true if the phone state is IDLE. 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isIdle(); 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 148fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Check if the phone is idle on a particular subId. 149fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * 150fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 151fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return true if the phone state is IDLE. 152fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 15363f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville boolean isIdleForSubscriber(int subId); 154fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 155fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Check to see if the radio is on or not. 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return returns true if the radio is on. 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isRadioOn(); 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 162fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Check to see if the radio is on or not on particular subId. 163fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 164fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return returns true if the radio is on. 165fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 16663f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville boolean isRadioOnForSubscriber(int subId); 167fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 168fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Check if the SIM pin lock is enabled. 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return true if the SIM pin lock is enabled. 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isSimPinEnabled(); 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Supply a pin to unlock the SIM. Blocks until a result is determined. 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param pin The pin to check. 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the operation was a success. 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean supplyPin(String pin); 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 182fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Supply a pin to unlock the SIM for particular subId. 183fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Blocks until a result is determined. 184fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param pin The pin to check. 185fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 186fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return whether the operation was a success. 187fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 18863f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville boolean supplyPinForSubscriber(int subId, String pin); 189fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 190fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 19198c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang * Supply puk to unlock the SIM and set SIM pin to new pin. 19298c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang * Blocks until a result is determined. 19398c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang * @param puk The puk to check. 19498c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang * pin The new pin to be set in SIM 19598c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang * @return whether the operation was a success. 19698c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang */ 19798c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang boolean supplyPuk(String puk, String pin); 19898c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang 19998c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang /** 200fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Supply puk to unlock the SIM and set SIM pin to new pin. 201fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Blocks until a result is determined. 202fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param puk The puk to check. 203fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * pin The new pin to be set in SIM 204fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 205fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return whether the operation was a success. 206fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 20763f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville boolean supplyPukForSubscriber(int subId, String puk, String pin); 208fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 209fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 210b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville * Supply a pin to unlock the SIM. Blocks until a result is determined. 211b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville * Returns a specific success/error code. 212b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville * @param pin The pin to check. 213b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code 214b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville * retValue[1] = number of attempts remaining if known otherwise -1 215b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville */ 216b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville int[] supplyPinReportResult(String pin); 217b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville 218b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville /** 219fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Supply a pin to unlock the SIM. Blocks until a result is determined. 220fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns a specific success/error code. 221fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param pin The pin to check. 222fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code 223fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * retValue[1] = number of attempts remaining if known otherwise -1 224fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 22563f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville int[] supplyPinReportResultForSubscriber(int subId, String pin); 226fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 227fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 228b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville * Supply puk to unlock the SIM and set SIM pin to new pin. 229b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville * Blocks until a result is determined. 230b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville * Returns a specific success/error code 231b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville * @param puk The puk to check 232b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville * pin The pin to check. 233b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code 234b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville * retValue[1] = number of attempts remaining if known otherwise -1 235b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville */ 236b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville int[] supplyPukReportResult(String puk, String pin); 237b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville 238b896b9f74225d61af67c2661f44eceadb9e22013Wink Saville /** 239fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Supply puk to unlock the SIM and set SIM pin to new pin. 240fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Blocks until a result is determined. 241fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns a specific success/error code 242fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param puk The puk to check 243fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * pin The pin to check. 244fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code 245fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * retValue[1] = number of attempts remaining if known otherwise -1 246fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 24763f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville int[] supplyPukReportResultForSubscriber(int subId, String puk, String pin); 248fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 249fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Handles PIN MMI commands (PIN/PIN2/PUK/PUK2), which are initiated 2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * without SEND (so <code>dial</code> is not appropriate). 252767a662ecde33c3979bf02b793d392aca0403162Wink Saville * 2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param dialString the MMI command to be executed. 2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return true if MMI command is executed. 2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean handlePinMmi(String dialString); 2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 259fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Handles PIN MMI commands (PIN/PIN2/PUK/PUK2), which are initiated 260fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * without SEND (so <code>dial</code> is not appropriate) for 261fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * a particular subId. 262fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param dialString the MMI command to be executed. 263fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 264fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return true if MMI command is executed. 265fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 26663f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville boolean handlePinMmiForSubscriber(int subId, String dialString); 267fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 268fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Toggles the radio on or off. 2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void toggleRadioOnOff(); 2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 274fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Toggles the radio on or off on particular subId. 275fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 276fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 27763f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville void toggleRadioOnOffForSubscriber(int subId); 278fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 279fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set the radio to on or off 2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean setRadio(boolean turnOn); 2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 285fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Set the radio to on or off on particular subId. 286fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 287fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 28863f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville boolean setRadioForSubscriber(int subId, boolean turnOn); 289fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 290fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 29145ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville * Set the radio to on or off unconditionally 29245ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville */ 29345ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville boolean setRadioPower(boolean turnOn); 29445ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville 29545ac9645da0ceafbae8c00b0dd0a09800fdcefdfWink Saville /** 2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Request to update location information in service state 2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void updateServiceLocation(); 2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 301fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Request to update location information for a subscrition in service state 302fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 303fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 30463f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville void updateServiceLocationForSubscriber(int subId); 305fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 306fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Enable location update notifications. 3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void enableLocationUpdates(); 3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 312fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Enable location update notifications. 313fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 314fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 31563f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville void enableLocationUpdatesForSubscriber(int subId); 316fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 317fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Disable location update notifications. 3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void disableLocationUpdates(); 3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 323fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Disable location update notifications. 324fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 325fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 32663f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville void disableLocationUpdatesForSubscriber(int subId); 327fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 328fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Allow mobile data connections. 3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean enableDataConnectivity(); 3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Disallow mobile data connections. 3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean disableDataConnectivity(); 3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Report whether data connectivity is possible. 3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isDataConnectivityPossible(); 3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Bundle getCellLocation(); 3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the neighboring cell information of the device. 3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 348f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn List<NeighboringCellInfo> getNeighboringCellInfo(String callingPkg); 3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getCallState(); 351fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 352fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 353fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns the call state for a subId. 354fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 35563f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville int getCallStateForSubscriber(int subId); 356fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getDataActivity(); 3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getDataState(); 359767a662ecde33c3979bf02b793d392aca0403162Wink Saville 360767a662ecde33c3979bf02b793d392aca0403162Wink Saville /** 361767a662ecde33c3979bf02b793d392aca0403162Wink Saville * Returns the current active phone type as integer. 362767a662ecde33c3979bf02b793d392aca0403162Wink Saville * Returns TelephonyManager.PHONE_TYPE_CDMA if RILConstants.CDMA_PHONE 363767a662ecde33c3979bf02b793d392aca0403162Wink Saville * and TelephonyManager.PHONE_TYPE_GSM if RILConstants.GSM_PHONE 364767a662ecde33c3979bf02b793d392aca0403162Wink Saville */ 365767a662ecde33c3979bf02b793d392aca0403162Wink Saville int getActivePhoneType(); 366767a662ecde33c3979bf02b793d392aca0403162Wink Saville 367e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 368fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns the current active phone type as integer for particular subId. 369fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns TelephonyManager.PHONE_TYPE_CDMA if RILConstants.CDMA_PHONE 370fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * and TelephonyManager.PHONE_TYPE_GSM if RILConstants.GSM_PHONE 371fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 372fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 37363f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville int getActivePhoneTypeForSubscriber(int subId); 374fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 375fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 376e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * Returns the CDMA ERI icon index to display 377e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 378e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville int getCdmaEriIconIndex(); 379e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 380e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 381fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns the CDMA ERI icon index to display on particular subId. 382fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 383fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 38463f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville int getCdmaEriIconIndexForSubscriber(int subId); 385fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 386fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 387e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * Returns the CDMA ERI icon mode, 388e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * 0 - ON 389e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * 1 - FLASHING 390e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 391e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville int getCdmaEriIconMode(); 392e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 393e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville /** 394fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns the CDMA ERI icon mode on particular subId, 395fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * 0 - ON 396fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * 1 - FLASHING 397fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 398fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 39963f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville int getCdmaEriIconModeForSubscriber(int subId); 400fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 401fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 402e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville * Returns the CDMA ERI text, 403e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville */ 404e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville String getCdmaEriText(); 405e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville 406dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville /** 407fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns the CDMA ERI text for particular subId, 408fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 409fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 41063f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville String getCdmaEriTextForSubscriber(int subId); 411fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 412fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 4134d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville * Returns true if OTA service provisioning needs to run. 4144d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville * Only relevant on some technologies, others will always 4154d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville * return false. 416767be5f0b929cc1eeb8a7d5aa7a02e228053e9bbJim Miller */ 4174d8ae85b5de8a90a597e4b649c6ee7208e446e3bWink Saville boolean needsOtaServiceProvisioning(); 418767be5f0b929cc1eeb8a7d5aa7a02e228053e9bbJim Miller 419767be5f0b929cc1eeb8a7d5aa7a02e228053e9bbJim Miller /** 4205c1a63c2235c36ce0b520fa88a9d21ffe255756eShishir Agrawal * Sets the voicemail number for a particular subscriber. 4215c1a63c2235c36ce0b520fa88a9d21ffe255756eShishir Agrawal */ 4225c1a63c2235c36ce0b520fa88a9d21ffe255756eShishir Agrawal boolean setVoiceMailNumber(int subId, String alphaTag, String number); 4235c1a63c2235c36ce0b520fa88a9d21ffe255756eShishir Agrawal 4245c1a63c2235c36ce0b520fa88a9d21ffe255756eShishir Agrawal /** 425dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville * Returns the unread count of voicemails 426dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville */ 427ce099c3226b33b43e0dd5d1f24347b14a2223ee1David Krause int getVoiceMessageCount(); 428dda5391d5079537e275c9f4ed2637a1484d0e4e8Wink Saville 429ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe /** 430fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns the unread count of voicemails for a subId. 431fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 432fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns the unread count of voicemails 433fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 43463f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville int getVoiceMessageCountForSubscriber(int subId); 435fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 436fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 4370dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville * Returns the network type for data transmission 438ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe */ 439ebe66345e7099ca6fc95e8aa4d31a5b5cbbd6224Li Zhe int getNetworkType(); 44098c7781ca89348992e3cb455e83cbc774bbe4d3eJohn Wang 441e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville /** 442fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns the network type of a subId. 443fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 444fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns the network type 445fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 44663f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville int getNetworkTypeForSubscriber(int subId); 447fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 448fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 4490dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville * Returns the network type for data transmission 4500dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville */ 4510dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville int getDataNetworkType(); 4520dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville 4530dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville /** 454fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns the data network type of a subId 455fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 456fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns the network type 457fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 45863f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville int getDataNetworkTypeForSubscriber(int subId); 459fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 460fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 4610dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville * Returns the network type for voice 4620dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville */ 4630dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville int getVoiceNetworkType(); 4640dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville 4650dde2c20a07770bc2f1b21e49222c968f3d8b39aWink Saville /** 466fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns the voice network type of a subId 467fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param subId user preferred subId. 468fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Returns the network type 469fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 47063f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville int getVoiceNetworkTypeForSubscriber(int subId); 471fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 472fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 473e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville * Return true if an ICC card is present 474e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville */ 475e40f66ffc11cfc7e1bbe3e4c2ae1cf6dbc24cc17Wink Saville boolean hasIccCard(); 4765e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville 4775e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville /** 478fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Return true if an ICC card is present for a subId. 479fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @param slotId user preferred slotId. 480fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Return true if an ICC card is present 481fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 48263f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville boolean hasIccCardUsingSlotId(int slotId); 483fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 484fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 4855e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville * Return if the current radio is LTE on CDMA. This 4865e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville * is a tri-state return value as for a period of time 4875e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville * the mode may be unknown. 4885e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville * 4895e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville * @return {@link Phone#LTE_ON_CDMA_UNKNOWN}, {@link Phone#LTE_ON_CDMA_FALSE} 4905e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville * or {@link PHone#LTE_ON_CDMA_TRUE} 4915e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville */ 4925e9270bfd566c32a60dfeb34435a158eb4ceb9a9Wink Saville int getLteOnCdmaMode(); 493963db55d59a170f4b17ff907c96615a19ef6fe17John Wang 494963db55d59a170f4b17ff907c96615a19ef6fe17John Wang /** 495fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Return if the current radio is LTE on CDMA. This 496fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * is a tri-state return value as for a period of time 497fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * the mode may be unknown. 498fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * 499fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return {@link Phone#LTE_ON_CDMA_UNKNOWN}, {@link Phone#LTE_ON_CDMA_FALSE} 500fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * or {@link PHone#LTE_ON_CDMA_TRUE} 501fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 50263f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville int getLteOnCdmaModeForSubscriber(int subId); 503fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 504fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 505963db55d59a170f4b17ff907c96615a19ef6fe17John Wang * Returns the all observed cell information of the device. 506963db55d59a170f4b17ff907c96615a19ef6fe17John Wang */ 507963db55d59a170f4b17ff907c96615a19ef6fe17John Wang List<CellInfo> getAllCellInfo(); 508094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville 509094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville /** 510094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville * Sets minimum time in milli-seconds between onCellInfoChanged 511094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville */ 512094beeccf5bf6e68d73f94a1aeaeda6690f4bf06Wink Saville void setCellInfoListRate(int rateInMillis); 513767a662ecde33c3979bf02b793d392aca0403162Wink Saville 51457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal /** 515fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * get default sim 516fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * @return sim id 517fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 518fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville int getDefaultSim(); 519fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 520fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 52157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * Opens a logical channel to the ICC card. 52257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * 52357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * Input parameters equivalent to TS 27.007 AT+CCHO command. 52457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * 52557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * @param AID Application id. See ETSI 102.221 and 101.220. 526a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @return an IccOpenLogicalChannelResponse object. 52757f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal */ 528a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal IccOpenLogicalChannelResponse iccOpenLogicalChannel(String AID); 52957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal 53057f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal /** 53157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * Closes a previously opened logical channel to the ICC card. 53257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * 53357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * Input parameters equivalent to TS 27.007 AT+CCHC command. 53457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * 53557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * @param channel is the channel id to be closed as retruned by a 53657f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * successful iccOpenLogicalChannel. 53757f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * @return true if the channel was closed successfully. 53857f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal */ 53957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal boolean iccCloseLogicalChannel(int channel); 54057f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal 54157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal /** 54257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * Transmit an APDU to the ICC card over a logical channel. 54357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * 54457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * Input parameters equivalent to TS 27.007 AT+CGLA command. 54557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * 54657f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * @param channel is the channel id to be closed as retruned by a 54757f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * successful iccOpenLogicalChannel. 54857f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * @param cla Class of the APDU command. 54957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * @param instruction Instruction of the APDU command. 55057f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * @param p1 P1 value of the APDU command. 55157f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * @param p2 P2 value of the APDU command. 55257f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * @param p3 P3 value of the APDU command. If p3 is negative a 4 byte APDU 55357f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * is sent to the SIM. 55457f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * @param data Data to be sent with the APDU. 55557f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal * @return The APDU response from the ICC card with the status appended at 55643d94347a6feb14870a4ffd7682a816210e5e676Shishir Agrawal * the end. 55757f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal */ 558375890841df7aad36a042861f6a70f11e1f32766Shishir Agrawal String iccTransmitApduLogicalChannel(int channel, int cla, int instruction, 55957f656b9f6271cf857b5ecec5f8c7eacb321ec0bShishir Agrawal int p1, int p2, int p3, String data); 5608f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby 5618f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby /** 562a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * Transmit an APDU to the ICC card over the basic channel. 563a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * 564a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * Input parameters equivalent to TS 27.007 AT+CSIM command. 565a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * 566a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @param cla Class of the APDU command. 567a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @param instruction Instruction of the APDU command. 568a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @param p1 P1 value of the APDU command. 569a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @param p2 P2 value of the APDU command. 570a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @param p3 P3 value of the APDU command. If p3 is negative a 4 byte APDU 571a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * is sent to the SIM. 572a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @param data Data to be sent with the APDU. 573a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @return The APDU response from the ICC card with the status appended at 57443d94347a6feb14870a4ffd7682a816210e5e676Shishir Agrawal * the end. 575a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal */ 576a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal String iccTransmitApduBasicChannel(int cla, int instruction, 577a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal int p1, int p2, int p3, String data); 578a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal 579a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal /** 580a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * Returns the response APDU for a command APDU sent through SIM_IO. 581a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * 582a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @param fileID 583a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @param command 584a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @param p1 P1 value of the APDU command. 585a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @param p2 P2 value of the APDU command. 586a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @param p3 P3 value of the APDU command. 587a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @param filePath 588a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal * @return The APDU response. 589a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal */ 590a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal byte[] iccExchangeSimIO(int fileID, int command, int p1, int p2, int p3, 591a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal String filePath); 592a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal 593a122e8df741456ea34e4a57d205411b8371a16dbShishir Agrawal /** 594b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton * Send ENVELOPE to the SIM and returns the response. 595210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton * 596210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton * @param contents String containing SAT/USAT response in hexadecimal 597210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton * format starting with command tag. See TS 102 223 for 598210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton * details. 599b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton * @return The APDU response from the ICC card, with the last 4 bytes 600b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton * being the status word. If the command fails, returns an empty 601b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton * string. 602210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton */ 603b8894ab1aec9c9ffa749f9369e412a51b942de27Evan Charlton String sendEnvelopeWithStatus(String content); 604210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton 605210889e91cb2da74e0323292ca156d17df03fe08Evan Charlton /** 6068f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * Read one of the NV items defined in {@link RadioNVItems} / {@code ril_nv_items.h}. 6078f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * Used for device configuration by some CDMA operators. 6088f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * 6098f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * @param itemID the ID of the item to read. 6108f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * @return the NV item as a String, or null on any failure. 6118f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby */ 6128f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby String nvReadItem(int itemID); 6138f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby 6148f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby /** 6158f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * Write one of the NV items defined in {@link RadioNVItems} / {@code ril_nv_items.h}. 6168f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * Used for device configuration by some CDMA operators. 6178f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * 6188f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * @param itemID the ID of the item to read. 6198f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * @param itemValue the value to write, as a String. 6208f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * @return true on success; false on any failure. 6218f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby */ 6228f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby boolean nvWriteItem(int itemID, String itemValue); 6238f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby 6248f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby /** 6258f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * Update the CDMA Preferred Roaming List (PRL) in the radio NV storage. 6268f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * Used for device configuration by some CDMA operators. 6278f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * 6288f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * @param preferredRoamingList byte array containing the new PRL. 6298f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * @return true on success; false on any failure. 6308f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby */ 6318f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby boolean nvWriteCdmaPrl(in byte[] preferredRoamingList); 6328f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby 6338f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby /** 634786e71ab11f2d89afffc9db7473f16206395c813Jake Hamby * Perform the specified type of NV config reset. The radio will be taken offline 635786e71ab11f2d89afffc9db7473f16206395c813Jake Hamby * and the device must be rebooted after the operation. Used for device 636786e71ab11f2d89afffc9db7473f16206395c813Jake Hamby * configuration by some CDMA operators. 6378f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * 6388f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * @param resetType the type of reset to perform (1 == factory reset; 2 == NV-only reset). 6398f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby * @return true on success; false on any failure. 6408f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby */ 6418f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby boolean nvResetConfig(int resetType); 6428f9b33e77686de8e917ba61c5e2f2e31a1e0e49bJake Hamby 6439bbb37116d2c5b597f9b5e3094ff328971e03c0bEvan Charlton /* 6441365703d4964466472904dc84117a0946d9e1a44Junda Liu * Get the calculated preferred network type. 6451365703d4964466472904dc84117a0946d9e1a44Junda Liu * Used for device configuration by some CDMA operators. 6461365703d4964466472904dc84117a0946d9e1a44Junda Liu * 6471365703d4964466472904dc84117a0946d9e1a44Junda Liu * @return the calculated preferred network type, defined in RILConstants.java. 6481365703d4964466472904dc84117a0946d9e1a44Junda Liu */ 6491365703d4964466472904dc84117a0946d9e1a44Junda Liu int getCalculatedPreferredNetworkType(); 6501365703d4964466472904dc84117a0946d9e1a44Junda Liu 6511365703d4964466472904dc84117a0946d9e1a44Junda Liu /* 6524a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby * Get the preferred network type. 6534a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby * Used for device configuration by some CDMA operators. 6544a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby * 6554a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby * @return the preferred network type, defined in RILConstants.java. 6564a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby */ 6574a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby int getPreferredNetworkType(); 6584a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby 6594a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby /** 66038531581fc19f9172fabe56047b326e5dab88625Junda Liu * Check TETHER_DUN_REQUIRED and TETHER_DUN_APN settings, net.tethering.noprovisioning 66138531581fc19f9172fabe56047b326e5dab88625Junda Liu * SystemProperty, and config_tether_apndata to decide whether DUN APN is required for 66238531581fc19f9172fabe56047b326e5dab88625Junda Liu * tethering. 66338531581fc19f9172fabe56047b326e5dab88625Junda Liu * 66438531581fc19f9172fabe56047b326e5dab88625Junda Liu * @return 0: Not required. 1: required. 2: Not set. 66538531581fc19f9172fabe56047b326e5dab88625Junda Liu */ 66638531581fc19f9172fabe56047b326e5dab88625Junda Liu int getTetherApnRequired(); 66738531581fc19f9172fabe56047b326e5dab88625Junda Liu 66838531581fc19f9172fabe56047b326e5dab88625Junda Liu /** 6694a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby * Set the preferred network type. 6704a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby * Used for device configuration by some CDMA operators. 6714a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby * 6724a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby * @param networkType the preferred network type, defined in RILConstants.java. 6734a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby * @return true on success; false on any failure. 6744a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby */ 6754a2fa35a6ad03d5ee1cd03ae94b4e7d70b50811cJake Hamby boolean setPreferredNetworkType(int networkType); 676afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt 677afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt /** 678afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt * User enable/disable Mobile Data. 679afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt * 680afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt * @param enable true to turn on, else false 681afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt */ 682afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt void setDataEnabled(boolean enable); 683afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt 684afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt /** 685afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt * Get the user enabled state of Mobile Data. 686afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt * 687afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt * @return true on enabled 688afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt */ 689afa05c0b43cbc065181d5c2d6ee368a08bb00c3bRobert Greenwalt boolean getDataEnabled(); 690fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 691fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 692fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Get P-CSCF address from PCO after data connection is established or modified. 693e647099e14114475e9a2827a10dab2d2e36308c4ram * @param apnType the apnType, "ims" for IMS APN, "emergency" for EMERGENCY APN 694fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 695e647099e14114475e9a2827a10dab2d2e36308c4ram String[] getPcscfAddress(String apnType); 696fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 697fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville /** 698fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville * Set IMS registration state 699fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */ 700fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville void setImsRegistrationState(boolean registered); 701fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 702762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal /** 7032b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu * Return MDN string for CDMA phone. 7042b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu * @param subId user preferred subId. 7052b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu */ 70663f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville String getCdmaMdn(int subId); 7072b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu 7082b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu /** 7092b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu * Return MIN string for CDMA phone. 7102b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu * @param subId user preferred subId. 7112b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu */ 71263f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville String getCdmaMin(int subId); 7132b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu 7142b2469b07d6ea9410bdb8d1234aa2320b02bdaa9Junda Liu /** 715762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal * Has the calling application been granted special privileges by the carrier. 716762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal * 717762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal * If any of the packages in the calling UID has carrier privileges, the 718762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal * call will return true. This access is granted by the owner of the UICC 719762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal * card and does not depend on the registered carrier. 720762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal * 721762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal * TODO: Add a link to documentation. 722762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal * 723fc3646f58e5851e7a483b8388bdd826078166d10Shishir Agrawal * @return carrier privilege status defined in TelephonyManager. 724762d5a091f5e19b568bb0ff81a2cb6785b69075fShishir Agrawal */ 725ab57c29092eb9185375de86d82ff32e6079f5cecShishir Agrawal int getCarrierPrivilegeStatus(); 726142529702dad9a6612271f487d500db80173ba7bJunda Liu 727142529702dad9a6612271f487d500db80173ba7bJunda Liu /** 728142529702dad9a6612271f487d500db80173ba7bJunda Liu * Similar to above, but check for pkg whose name is pkgname. 729142529702dad9a6612271f487d500db80173ba7bJunda Liu */ 73056be215bcc5df95447c49d99915c299965b44207Shishir Agrawal int checkCarrierPrivilegesForPackage(String pkgname); 731f9aefdb534c6cb2af22dfb7614a1c15c2d67dd9cDerek Tan 732f9aefdb534c6cb2af22dfb7614a1c15c2d67dd9cDerek Tan /** 73363c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal * Returns the package name of the carrier apps that should handle the input intent. 73463c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal * 73563c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal * @param packageManager PackageManager for getting receivers. 7363892fc0349a91097f53152eaf2801dfebb2066caDiego Pontoriero * @param intent Intent that will be sent. 73763c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal * @return list of carrier app package names that can handle the intent. 73863c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal * Returns null if there is an error and an empty list if there 73963c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal * are no matching packages. 74063c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal */ 7413892fc0349a91097f53152eaf2801dfebb2066caDiego Pontoriero List<String> getCarrierPackageNamesForIntent(in Intent intent); 74263c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal 74363c4c06be44fe8bd4506e6f9f57361d31e947c21Shishir Agrawal /** 7442bae510ccef2da7dd767f8148d4e3539037f4aaaDerek Tan * Set the line 1 phone number string and its alphatag for the current ICCID 7452bae510ccef2da7dd767f8148d4e3539037f4aaaDerek Tan * for display purpose only, for example, displayed in Phone Status. It won't 7462bae510ccef2da7dd767f8148d4e3539037f4aaaDerek Tan * change the actual MSISDN/MDN. To unset alphatag or number, pass in a null 7472bae510ccef2da7dd767f8148d4e3539037f4aaaDerek Tan * value. 748818631b679171ffb49eaa641bee06b9c953651daDerek Tan * 749818631b679171ffb49eaa641bee06b9c953651daDerek Tan * @param subId the subscriber that the alphatag and dialing number belongs to. 750818631b679171ffb49eaa641bee06b9c953651daDerek Tan * @param alphaTag alpha-tagging of the dailing nubmer 751818631b679171ffb49eaa641bee06b9c953651daDerek Tan * @param number The dialing number 7520201a6f6f16a872405a5f9ee65026e948eb162d0Shishir Agrawal * @return true if the operation was executed correctly. 753818631b679171ffb49eaa641bee06b9c953651daDerek Tan */ 7540201a6f6f16a872405a5f9ee65026e948eb162d0Shishir Agrawal boolean setLine1NumberForDisplayForSubscriber(int subId, String alphaTag, String number); 755818631b679171ffb49eaa641bee06b9c953651daDerek Tan 756818631b679171ffb49eaa641bee06b9c953651daDerek Tan /** 757818631b679171ffb49eaa641bee06b9c953651daDerek Tan * Returns the displayed dialing number string if it was set previously via 758818631b679171ffb49eaa641bee06b9c953651daDerek Tan * {@link #setLine1NumberForDisplay}. Otherwise returns null. 759818631b679171ffb49eaa641bee06b9c953651daDerek Tan * 760818631b679171ffb49eaa641bee06b9c953651daDerek Tan * @param subId whose dialing number for line 1 is returned. 761818631b679171ffb49eaa641bee06b9c953651daDerek Tan * @return the displayed dialing number if set, or null if not set. 762818631b679171ffb49eaa641bee06b9c953651daDerek Tan */ 76363f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville String getLine1NumberForDisplay(int subId); 764818631b679171ffb49eaa641bee06b9c953651daDerek Tan 765818631b679171ffb49eaa641bee06b9c953651daDerek Tan /** 766818631b679171ffb49eaa641bee06b9c953651daDerek Tan * Returns the displayed alphatag of the dialing number if it was set 767818631b679171ffb49eaa641bee06b9c953651daDerek Tan * previously via {@link #setLine1NumberForDisplay}. Otherwise returns null. 768818631b679171ffb49eaa641bee06b9c953651daDerek Tan * 769818631b679171ffb49eaa641bee06b9c953651daDerek Tan * @param subId whose alphatag associated with line 1 is returned. 770818631b679171ffb49eaa641bee06b9c953651daDerek Tan * @return the displayed alphatag of the dialing number if set, or null if 771818631b679171ffb49eaa641bee06b9c953651daDerek Tan * not set. 772818631b679171ffb49eaa641bee06b9c953651daDerek Tan */ 77363f03dd94c43c22f2c77306059b5748e5e1e0e3cWink Saville String getLine1AlphaTagForDisplay(int subId); 77486578cca383562c72751d747905280afdeb2bdfbShishir Agrawal 7753256601f5e4d94713f59e97b9d4912875c1bdcafJeff Sharkey String[] getMergedSubscriberIds(); 7763256601f5e4d94713f59e97b9d4912875c1bdcafJeff Sharkey 77786578cca383562c72751d747905280afdeb2bdfbShishir Agrawal /** 778d2cfa92146ecfa5e00d4a3ce8e63b1a588845fe2Shishir Agrawal * Override the operator branding for the current ICCID. 77986578cca383562c72751d747905280afdeb2bdfbShishir Agrawal * 780d2cfa92146ecfa5e00d4a3ce8e63b1a588845fe2Shishir Agrawal * Once set, whenever the SIM is present in the device, the service 78186578cca383562c72751d747905280afdeb2bdfbShishir Agrawal * provider name (SPN) and the operator name will both be replaced by the 78286578cca383562c72751d747905280afdeb2bdfbShishir Agrawal * brand value input. To unset the value, the same function should be 78386578cca383562c72751d747905280afdeb2bdfbShishir Agrawal * called with a null brand value. 78486578cca383562c72751d747905280afdeb2bdfbShishir Agrawal * 78586578cca383562c72751d747905280afdeb2bdfbShishir Agrawal * <p>Requires Permission: 78686578cca383562c72751d747905280afdeb2bdfbShishir Agrawal * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE} 78786578cca383562c72751d747905280afdeb2bdfbShishir Agrawal * or has to be carrier app - see #hasCarrierPrivileges. 78886578cca383562c72751d747905280afdeb2bdfbShishir Agrawal * 78986578cca383562c72751d747905280afdeb2bdfbShishir Agrawal * @param brand The brand name to display/set. 79086578cca383562c72751d747905280afdeb2bdfbShishir Agrawal * @return true if the operation was executed correctly. 79186578cca383562c72751d747905280afdeb2bdfbShishir Agrawal */ 792d2cfa92146ecfa5e00d4a3ce8e63b1a588845fe2Shishir Agrawal boolean setOperatorBrandOverride(String brand); 7933099c831441e861328cd4965011c854e060ce56aSteven Liu 7943099c831441e861328cd4965011c854e060ce56aSteven Liu /** 7953099c831441e861328cd4965011c854e060ce56aSteven Liu * Returns the result and response from RIL for oem request 7963099c831441e861328cd4965011c854e060ce56aSteven Liu * 7973099c831441e861328cd4965011c854e060ce56aSteven Liu * @param oemReq the data is sent to ril. 7983099c831441e861328cd4965011c854e060ce56aSteven Liu * @param oemResp the respose data from RIL. 7993099c831441e861328cd4965011c854e060ce56aSteven Liu * @return negative value request was not handled or get error 8003099c831441e861328cd4965011c854e060ce56aSteven Liu * 0 request was handled succesfully, but no response data 8013099c831441e861328cd4965011c854e060ce56aSteven Liu * positive value success, data length of response 8023099c831441e861328cd4965011c854e060ce56aSteven Liu */ 8033099c831441e861328cd4965011c854e060ce56aSteven Liu int invokeOemRilRequestRaw(in byte[] oemReq, out byte[] oemResp); 804fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville 805bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla /** 806bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla * Check if any mobile Radios need to be shutdown. 807bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla * 808bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla * @return true is any mobile radio needs to be shutdown 809bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla */ 810bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla boolean needMobileRadioShutdown(); 811bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla 812bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla /** 813bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla * Shutdown Mobile Radios 814bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla */ 815bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla void shutdownMobileRadios(); 8162af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville 8172af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville /** 8182af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville * Set phone radio type and access technology. 8192af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville * 8202af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville * @param rafs an RadioAccessFamily array to indicate all phone's 8212af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville * new radio access family. The length of RadioAccessFamily 8222af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville * must equ]]al to phone count. 8232af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville */ 8242af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville void setRadioCapability(in RadioAccessFamily[] rafs); 8252af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville 8262af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville /** 8272af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville * Get phone radio type and access technology. 8282af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville * 8292af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville * @param phoneId which phone you want to get 8302af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville * @return phone radio type and access technology 8312af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville */ 8322af2d57d578e0c3a2740628e7c6336b19961cc49Wink Saville int getRadioAccessFamily(in int phoneId); 8334a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee 8344a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee /** 8354a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee * Enables or disables video calling. 8364a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee * 8374a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee * @param enable Whether to enable video calling. 8384a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee */ 8394a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee void enableVideoCalling(boolean enable); 8404a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee 8414a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee /** 8424a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee * Whether video calling has been enabled by the user. 8434a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee * 8444a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee * @return {@code True} if the user has enabled video calling, {@code false} otherwise. 8454a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee */ 8464a3084a46d80383c528198a48da5c327d7d08a00Andrew Lee boolean isVideoCallingEnabled(); 847bd7723637b14d1895c043c2257f1cd9560322d4eNaveen Kalla} 848