ITelephony.aidl revision 22a3cf83497bc7337d3f75bb837d95346e124033
1/* 2 * Copyright (C) 2007 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package com.android.internal.telephony; 18 19import android.content.Intent; 20import android.os.Bundle; 21import android.telephony.CellInfo; 22import android.telephony.IccOpenLogicalChannelResponse; 23import android.telephony.NeighboringCellInfo; 24import java.util.List; 25 26 27/** 28 * Interface used to interact with the phone. Mostly this is used by the 29 * TelephonyManager class. A few places are still using this directly. 30 * Please clean them up if possible and use TelephonyManager insteadl. 31 * 32 * {@hide} 33 */ 34interface ITelephony { 35 36 /** 37 * Dial a number. This doesn't place the call. It displays 38 * the Dialer screen. 39 * @param number the number to be dialed. If null, this 40 * would display the Dialer screen with no number pre-filled. 41 */ 42 void dial(String number); 43 44 /** 45 * Place a call to the specified number. 46 * @param number the number to be called. 47 */ 48 void call(String callingPackage, String number); 49 50 /** 51 * End call if there is a call in progress, otherwise does nothing. 52 * 53 * @return whether it hung up 54 */ 55 boolean endCall(); 56 57 /** 58 * End call on particular subId or go to the Home screen 59 * @param subId user preferred subId. 60 * @return whether it hung up 61 */ 62 boolean endCallUsingSubId(long subId); 63 64 /** 65 * Answer the currently-ringing call. 66 * 67 * If there's already a current active call, that call will be 68 * automatically put on hold. If both lines are currently in use, the 69 * current active call will be ended. 70 * 71 * TODO: provide a flag to let the caller specify what policy to use 72 * if both lines are in use. (The current behavior is hardwired to 73 * "answer incoming, end ongoing", which is how the CALL button 74 * is specced to behave.) 75 * 76 * TODO: this should be a oneway call (especially since it's called 77 * directly from the key queue thread). 78 */ 79 void answerRingingCall(); 80 81 /** 82 * Answer the currently-ringing call on particular subId . 83 * 84 * If there's already a current active call, that call will be 85 * automatically put on hold. If both lines are currently in use, the 86 * current active call will be ended. 87 * 88 * TODO: provide a flag to let the caller specify what policy to use 89 * if both lines are in use. (The current behavior is hardwired to 90 * "answer incoming, end ongoing", which is how the CALL button 91 * is specced to behave.) 92 * 93 * TODO: this should be a oneway call (especially since it's called 94 * directly from the key queue thread). 95 */ 96 void answerRingingCallUsingSubId(long subId); 97 98 /** 99 * Silence the ringer if an incoming call is currently ringing. 100 * (If vibrating, stop the vibrator also.) 101 * 102 * It's safe to call this if the ringer has already been silenced, or 103 * even if there's no incoming call. (If so, this method will do nothing.) 104 * 105 * TODO: this should be a oneway call too (see above). 106 * (Actually *all* the methods here that return void can 107 * probably be oneway.) 108 */ 109 void silenceRinger(); 110 111 /** 112 * Check if we are in either an active or holding call 113 * @return true if the phone state is OFFHOOK. 114 */ 115 boolean isOffhook(); 116 117 /** 118 * Check if a particular subId has an active or holding call 119 * 120 * @param subId user preferred subId. 121 * @return true if the phone state is OFFHOOK. 122 */ 123 boolean isOffhookUsingSubId(long subId); 124 125 /** 126 * Check if an incoming phone call is ringing or call waiting 127 * on a particular subId. 128 * 129 * @param subId user preferred subId. 130 * @return true if the phone state is RINGING. 131 */ 132 boolean isRingingUsingSubId(long subId); 133 134 /** 135 * Check if an incoming phone call is ringing or call waiting. 136 * @return true if the phone state is RINGING. 137 */ 138 boolean isRinging(); 139 140 /** 141 * Check if the phone is idle. 142 * @return true if the phone state is IDLE. 143 */ 144 boolean isIdle(); 145 146 /** 147 * Check if the phone is idle on a particular subId. 148 * 149 * @param subId user preferred subId. 150 * @return true if the phone state is IDLE. 151 */ 152 boolean isIdleUsingSubId(long subId); 153 154 /** 155 * Check to see if the radio is on or not. 156 * @return returns true if the radio is on. 157 */ 158 boolean isRadioOn(); 159 160 /** 161 * Check to see if the radio is on or not on particular subId. 162 * @param subId user preferred subId. 163 * @return returns true if the radio is on. 164 */ 165 boolean isRadioOnUsingSubId(long subId); 166 167 /** 168 * Check if the SIM pin lock is enabled. 169 * @return true if the SIM pin lock is enabled. 170 */ 171 boolean isSimPinEnabled(); 172 173 /** 174 * Supply a pin to unlock the SIM. Blocks until a result is determined. 175 * @param pin The pin to check. 176 * @return whether the operation was a success. 177 */ 178 boolean supplyPin(String pin); 179 180 /** 181 * Supply a pin to unlock the SIM for particular subId. 182 * Blocks until a result is determined. 183 * @param pin The pin to check. 184 * @param subId user preferred subId. 185 * @return whether the operation was a success. 186 */ 187 boolean supplyPinUsingSubId(long subId, String pin); 188 189 /** 190 * Supply puk to unlock the SIM and set SIM pin to new pin. 191 * Blocks until a result is determined. 192 * @param puk The puk to check. 193 * pin The new pin to be set in SIM 194 * @return whether the operation was a success. 195 */ 196 boolean supplyPuk(String puk, String pin); 197 198 /** 199 * Supply puk to unlock the SIM and set SIM pin to new pin. 200 * Blocks until a result is determined. 201 * @param puk The puk to check. 202 * pin The new pin to be set in SIM 203 * @param subId user preferred subId. 204 * @return whether the operation was a success. 205 */ 206 boolean supplyPukUsingSubId(long subId, String puk, String pin); 207 208 /** 209 * Supply a pin to unlock the SIM. Blocks until a result is determined. 210 * Returns a specific success/error code. 211 * @param pin The pin to check. 212 * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code 213 * retValue[1] = number of attempts remaining if known otherwise -1 214 */ 215 int[] supplyPinReportResult(String pin); 216 217 /** 218 * Supply a pin to unlock the SIM. Blocks until a result is determined. 219 * Returns a specific success/error code. 220 * @param pin The pin to check. 221 * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code 222 * retValue[1] = number of attempts remaining if known otherwise -1 223 */ 224 int[] supplyPinReportResultUsingSubId(long subId, String pin); 225 226 /** 227 * Supply puk to unlock the SIM and set SIM pin to new pin. 228 * Blocks until a result is determined. 229 * Returns a specific success/error code 230 * @param puk The puk to check 231 * pin The pin to check. 232 * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code 233 * retValue[1] = number of attempts remaining if known otherwise -1 234 */ 235 int[] supplyPukReportResult(String puk, String pin); 236 237 /** 238 * Supply puk to unlock the SIM and set SIM pin to new pin. 239 * Blocks until a result is determined. 240 * Returns a specific success/error code 241 * @param puk The puk to check 242 * pin The pin to check. 243 * @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code 244 * retValue[1] = number of attempts remaining if known otherwise -1 245 */ 246 int[] supplyPukReportResultUsingSubId(long subId, String puk, String pin); 247 248 /** 249 * Handles PIN MMI commands (PIN/PIN2/PUK/PUK2), which are initiated 250 * without SEND (so <code>dial</code> is not appropriate). 251 * 252 * @param dialString the MMI command to be executed. 253 * @return true if MMI command is executed. 254 */ 255 boolean handlePinMmi(String dialString); 256 257 /** 258 * Handles PIN MMI commands (PIN/PIN2/PUK/PUK2), which are initiated 259 * without SEND (so <code>dial</code> is not appropriate) for 260 * a particular subId. 261 * @param dialString the MMI command to be executed. 262 * @param subId user preferred subId. 263 * @return true if MMI command is executed. 264 */ 265 boolean handlePinMmiUsingSubId(long subId, String dialString); 266 267 /** 268 * Toggles the radio on or off. 269 */ 270 void toggleRadioOnOff(); 271 272 /** 273 * Toggles the radio on or off on particular subId. 274 * @param subId user preferred subId. 275 */ 276 void toggleRadioOnOffUsingSubId(long subId); 277 278 /** 279 * Set the radio to on or off 280 */ 281 boolean setRadio(boolean turnOn); 282 283 /** 284 * Set the radio to on or off on particular subId. 285 * @param subId user preferred subId. 286 */ 287 boolean setRadioUsingSubId(long subId, boolean turnOn); 288 289 /** 290 * Set the radio to on or off unconditionally 291 */ 292 boolean setRadioPower(boolean turnOn); 293 294 /** 295 * Request to update location information in service state 296 */ 297 void updateServiceLocation(); 298 299 /** 300 * Request to update location information for a subscrition in service state 301 * @param subId user preferred subId. 302 */ 303 void updateServiceLocationUsingSubId(long subId); 304 305 /** 306 * Enable location update notifications. 307 */ 308 void enableLocationUpdates(); 309 310 /** 311 * Enable location update notifications. 312 * @param subId user preferred subId. 313 */ 314 void enableLocationUpdatesUsingSubId(long subId); 315 316 /** 317 * Disable location update notifications. 318 */ 319 void disableLocationUpdates(); 320 321 /** 322 * Disable location update notifications. 323 * @param subId user preferred subId. 324 */ 325 void disableLocationUpdatesUsingSubId(long subId); 326 327 /** 328 * Allow mobile data connections. 329 */ 330 boolean enableDataConnectivity(); 331 332 /** 333 * Disallow mobile data connections. 334 */ 335 boolean disableDataConnectivity(); 336 337 /** 338 * Report whether data connectivity is possible. 339 */ 340 boolean isDataConnectivityPossible(); 341 342 Bundle getCellLocation(); 343 344 /** 345 * Returns the neighboring cell information of the device. 346 */ 347 List<NeighboringCellInfo> getNeighboringCellInfo(String callingPkg); 348 349 int getCallState(); 350 351 /** 352 * Returns the call state for a subId. 353 */ 354 int getCallStateUsingSubId(long subId); 355 356 int getDataActivity(); 357 int getDataState(); 358 359 /** 360 * Returns the current active phone type as integer. 361 * Returns TelephonyManager.PHONE_TYPE_CDMA if RILConstants.CDMA_PHONE 362 * and TelephonyManager.PHONE_TYPE_GSM if RILConstants.GSM_PHONE 363 */ 364 int getActivePhoneType(); 365 366 /** 367 * Returns the current active phone type as integer for particular subId. 368 * Returns TelephonyManager.PHONE_TYPE_CDMA if RILConstants.CDMA_PHONE 369 * and TelephonyManager.PHONE_TYPE_GSM if RILConstants.GSM_PHONE 370 * @param subId user preferred subId. 371 */ 372 int getActivePhoneTypeUsingSubId(long subId); 373 374 /** 375 * Returns the CDMA ERI icon index to display 376 */ 377 int getCdmaEriIconIndex(); 378 379 /** 380 * Returns the CDMA ERI icon index to display on particular subId. 381 * @param subId user preferred subId. 382 */ 383 int getCdmaEriIconIndexUsingSubId(long subId); 384 385 /** 386 * Returns the CDMA ERI icon mode, 387 * 0 - ON 388 * 1 - FLASHING 389 */ 390 int getCdmaEriIconMode(); 391 392 /** 393 * Returns the CDMA ERI icon mode on particular subId, 394 * 0 - ON 395 * 1 - FLASHING 396 * @param subId user preferred subId. 397 */ 398 int getCdmaEriIconModeUsingSubId(long subId); 399 400 /** 401 * Returns the CDMA ERI text, 402 */ 403 String getCdmaEriText(); 404 405 /** 406 * Returns the CDMA ERI text for particular subId, 407 * @param subId user preferred subId. 408 */ 409 String getCdmaEriTextUsingSubId(long subId); 410 411 /** 412 * Returns true if OTA service provisioning needs to run. 413 * Only relevant on some technologies, others will always 414 * return false. 415 */ 416 boolean needsOtaServiceProvisioning(); 417 418 /** 419 * Returns the unread count of voicemails 420 */ 421 int getVoiceMessageCount(); 422 423 /** 424 * Returns the unread count of voicemails for a subId. 425 * @param subId user preferred subId. 426 * Returns the unread count of voicemails 427 */ 428 int getVoiceMessageCountUsingSubId(long subId); 429 430 /** 431 * Returns the network type for data transmission 432 */ 433 int getNetworkType(); 434 435 /** 436 * Returns the network type of a subId. 437 * @param subId user preferred subId. 438 * Returns the network type 439 */ 440 int getNetworkTypeUsingSubId(long subId); 441 442 /** 443 * Returns the network type for data transmission 444 */ 445 int getDataNetworkType(); 446 447 /** 448 * Returns the data network type of a subId 449 * @param subId user preferred subId. 450 * Returns the network type 451 */ 452 int getDataNetworkTypeUsingSubId(long subId); 453 454 /** 455 * Returns the network type for voice 456 */ 457 int getVoiceNetworkType(); 458 459 /** 460 * Returns the voice network type of a subId 461 * @param subId user preferred subId. 462 * Returns the network type 463 */ 464 int getVoiceNetworkTypeUsingSubId(long subId); 465 466 /** 467 * Return true if an ICC card is present 468 */ 469 boolean hasIccCard(); 470 471 /** 472 * Return true if an ICC card is present for a subId. 473 * @param slotId user preferred slotId. 474 * Return true if an ICC card is present 475 */ 476 boolean hasIccCardUsingSlotId(long slotId); 477 478 /** 479 * Return if the current radio is LTE on CDMA. This 480 * is a tri-state return value as for a period of time 481 * the mode may be unknown. 482 * 483 * @return {@link Phone#LTE_ON_CDMA_UNKNOWN}, {@link Phone#LTE_ON_CDMA_FALSE} 484 * or {@link PHone#LTE_ON_CDMA_TRUE} 485 */ 486 int getLteOnCdmaMode(); 487 488 /** 489 * Return if the current radio is LTE on CDMA. This 490 * is a tri-state return value as for a period of time 491 * the mode may be unknown. 492 * 493 * @return {@link Phone#LTE_ON_CDMA_UNKNOWN}, {@link Phone#LTE_ON_CDMA_FALSE} 494 * or {@link PHone#LTE_ON_CDMA_TRUE} 495 */ 496 int getLteOnCdmaModeUsingSubId(long subId); 497 498 /** 499 * Returns the all observed cell information of the device. 500 */ 501 List<CellInfo> getAllCellInfo(); 502 503 /** 504 * Sets minimum time in milli-seconds between onCellInfoChanged 505 */ 506 void setCellInfoListRate(int rateInMillis); 507 508 /** 509 * get default sim 510 * @return sim id 511 */ 512 int getDefaultSim(); 513 514 /** 515 * Opens a logical channel to the ICC card. 516 * 517 * Input parameters equivalent to TS 27.007 AT+CCHO command. 518 * 519 * @param AID Application id. See ETSI 102.221 and 101.220. 520 * @return an IccOpenLogicalChannelResponse object. 521 */ 522 IccOpenLogicalChannelResponse iccOpenLogicalChannel(String AID); 523 524 /** 525 * Closes a previously opened logical channel to the ICC card. 526 * 527 * Input parameters equivalent to TS 27.007 AT+CCHC command. 528 * 529 * @param channel is the channel id to be closed as retruned by a 530 * successful iccOpenLogicalChannel. 531 * @return true if the channel was closed successfully. 532 */ 533 boolean iccCloseLogicalChannel(int channel); 534 535 /** 536 * Transmit an APDU to the ICC card over a logical channel. 537 * 538 * Input parameters equivalent to TS 27.007 AT+CGLA command. 539 * 540 * @param channel is the channel id to be closed as retruned by a 541 * successful iccOpenLogicalChannel. 542 * @param cla Class of the APDU command. 543 * @param instruction Instruction of the APDU command. 544 * @param p1 P1 value of the APDU command. 545 * @param p2 P2 value of the APDU command. 546 * @param p3 P3 value of the APDU command. If p3 is negative a 4 byte APDU 547 * is sent to the SIM. 548 * @param data Data to be sent with the APDU. 549 * @return The APDU response from the ICC card with the status appended at 550 * the end. 551 */ 552 String iccTransmitApduLogicalChannel(int channel, int cla, int instruction, 553 int p1, int p2, int p3, String data); 554 555 /** 556 * Transmit an APDU to the ICC card over the basic channel. 557 * 558 * Input parameters equivalent to TS 27.007 AT+CSIM command. 559 * 560 * @param cla Class of the APDU command. 561 * @param instruction Instruction of the APDU command. 562 * @param p1 P1 value of the APDU command. 563 * @param p2 P2 value of the APDU command. 564 * @param p3 P3 value of the APDU command. If p3 is negative a 4 byte APDU 565 * is sent to the SIM. 566 * @param data Data to be sent with the APDU. 567 * @return The APDU response from the ICC card with the status appended at 568 * the end. 569 */ 570 String iccTransmitApduBasicChannel(int cla, int instruction, 571 int p1, int p2, int p3, String data); 572 573 /** 574 * Returns the response APDU for a command APDU sent through SIM_IO. 575 * 576 * @param fileID 577 * @param command 578 * @param p1 P1 value of the APDU command. 579 * @param p2 P2 value of the APDU command. 580 * @param p3 P3 value of the APDU command. 581 * @param filePath 582 * @return The APDU response. 583 */ 584 byte[] iccExchangeSimIO(int fileID, int command, int p1, int p2, int p3, 585 String filePath); 586 587 /** 588 * Send ENVELOPE to the SIM and returns the response. 589 * 590 * @param contents String containing SAT/USAT response in hexadecimal 591 * format starting with command tag. See TS 102 223 for 592 * details. 593 * @return The APDU response from the ICC card, with the last 4 bytes 594 * being the status word. If the command fails, returns an empty 595 * string. 596 */ 597 String sendEnvelopeWithStatus(String content); 598 599 /** 600 * Read one of the NV items defined in {@link RadioNVItems} / {@code ril_nv_items.h}. 601 * Used for device configuration by some CDMA operators. 602 * 603 * @param itemID the ID of the item to read. 604 * @return the NV item as a String, or null on any failure. 605 */ 606 String nvReadItem(int itemID); 607 608 /** 609 * Write one of the NV items defined in {@link RadioNVItems} / {@code ril_nv_items.h}. 610 * Used for device configuration by some CDMA operators. 611 * 612 * @param itemID the ID of the item to read. 613 * @param itemValue the value to write, as a String. 614 * @return true on success; false on any failure. 615 */ 616 boolean nvWriteItem(int itemID, String itemValue); 617 618 /** 619 * Update the CDMA Preferred Roaming List (PRL) in the radio NV storage. 620 * Used for device configuration by some CDMA operators. 621 * 622 * @param preferredRoamingList byte array containing the new PRL. 623 * @return true on success; false on any failure. 624 */ 625 boolean nvWriteCdmaPrl(in byte[] preferredRoamingList); 626 627 /** 628 * Perform the specified type of NV config reset. The radio will be taken offline 629 * and the device must be rebooted after the operation. Used for device 630 * configuration by some CDMA operators. 631 * 632 * @param resetType the type of reset to perform (1 == factory reset; 2 == NV-only reset). 633 * @return true on success; false on any failure. 634 */ 635 boolean nvResetConfig(int resetType); 636 637 /* 638 * Get the calculated preferred network type. 639 * Used for device configuration by some CDMA operators. 640 * 641 * @return the calculated preferred network type, defined in RILConstants.java. 642 */ 643 int getCalculatedPreferredNetworkType(); 644 645 /* 646 * Get the preferred network type. 647 * Used for device configuration by some CDMA operators. 648 * 649 * @return the preferred network type, defined in RILConstants.java. 650 */ 651 int getPreferredNetworkType(); 652 653 /** 654 * Set the preferred network type. 655 * Used for device configuration by some CDMA operators. 656 * 657 * @param networkType the preferred network type, defined in RILConstants.java. 658 * @return true on success; false on any failure. 659 */ 660 boolean setPreferredNetworkType(int networkType); 661 662 /** 663 * User enable/disable Mobile Data. 664 * 665 * @param enable true to turn on, else false 666 */ 667 void setDataEnabled(boolean enable); 668 669 /** 670 * Get the user enabled state of Mobile Data. 671 * 672 * @return true on enabled 673 */ 674 boolean getDataEnabled(); 675 676 /** 677 * Get P-CSCF address from PCO after data connection is established or modified. 678 * @param apnType the apnType, "ims" for IMS APN, "emergency" for EMERGENCY APN 679 */ 680 String[] getPcscfAddress(String apnType); 681 682 /** 683 * Set IMS registration state 684 */ 685 void setImsRegistrationState(boolean registered); 686 687 /** 688 * Return MDN string for CDMA phone. 689 * @param subId user preferred subId. 690 */ 691 String getCdmaMdn(long subId); 692 693 /** 694 * Return MIN string for CDMA phone. 695 * @param subId user preferred subId. 696 */ 697 String getCdmaMin(long subId); 698 699 /** 700 * Has the calling application been granted special privileges by the carrier. 701 * 702 * If any of the packages in the calling UID has carrier privileges, the 703 * call will return true. This access is granted by the owner of the UICC 704 * card and does not depend on the registered carrier. 705 * 706 * TODO: Add a link to documentation. 707 * 708 * @return carrier privilege status defined in TelephonyManager. 709 */ 710 int hasCarrierPrivileges(); 711 712 /** 713 * Similar to above, but check for pkg whose name is pkgname. 714 */ 715 int checkCarrierPrivilegesForPackage(String pkgname); 716 717 /** 718 * Returns the package name of the carrier apps that should handle the input intent. 719 * 720 * @param packageManager PackageManager for getting receivers. 721 * @param intent Intent that will be sent. 722 * @return list of carrier app package names that can handle the intent. 723 * Returns null if there is an error and an empty list if there 724 * are no matching packages. 725 */ 726 List<String> getCarrierPackageNamesForIntent(in Intent intent); 727 728 /** 729 * Set whether Android should display a simplified Mobile Network Settings UI. 730 * The setting won't be persisted during power cycle. 731 * 732 * @param subId for which the simplified UI should be enabled or disabled. 733 * @param enable true means enabling the simplified UI. 734 */ 735 void enableSimplifiedNetworkSettings(long subId, boolean enable); 736 737 /** 738 * Get whether a simplified Mobile Network Settings UI is enabled. 739 * 740 * @param subId for which the simplified UI should be enabled or disabled. 741 * @return true if the simplified UI is enabled. 742 */ 743 boolean getSimplifiedNetworkSettingsEnabled(long subId); 744 745 /** 746 * Set the phone number string and its alphatag for line 1 for display 747 * purpose only, for example, displayed in Phone Status. It won't change 748 * the actual MSISDN/MDN. This setting won't be persisted during power cycle 749 * and it should be set again after reboot. 750 * 751 * @param subId the subscriber that the alphatag and dialing number belongs to. 752 * @param alphaTag alpha-tagging of the dailing nubmer 753 * @param number The dialing number 754 */ 755 void setLine1NumberForDisplay(long subId, String alphaTag, String number); 756 757 /** 758 * Returns the displayed dialing number string if it was set previously via 759 * {@link #setLine1NumberForDisplay}. Otherwise returns null. 760 * 761 * @param subId whose dialing number for line 1 is returned. 762 * @return the displayed dialing number if set, or null if not set. 763 */ 764 String getLine1NumberForDisplay(long subId); 765 766 /** 767 * Returns the displayed alphatag of the dialing number if it was set 768 * previously via {@link #setLine1NumberForDisplay}. Otherwise returns null. 769 * 770 * @param subId whose alphatag associated with line 1 is returned. 771 * @return the displayed alphatag of the dialing number if set, or null if 772 * not set. 773 */ 774 String getLine1AlphaTagForDisplay(long subId); 775 776 /** 777 * Override the operator branding for the current ICCID. 778 * 779 * Once set, whenever the SIM is present in the device, the service 780 * provider name (SPN) and the operator name will both be replaced by the 781 * brand value input. To unset the value, the same function should be 782 * called with a null brand value. 783 * 784 * <p>Requires Permission: 785 * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE} 786 * or has to be carrier app - see #hasCarrierPrivileges. 787 * 788 * @param brand The brand name to display/set. 789 * @return true if the operation was executed correctly. 790 */ 791 boolean setOperatorBrandOverride(String brand); 792 793 /** 794 * Returns the result and response from RIL for oem request 795 * 796 * @param oemReq the data is sent to ril. 797 * @param oemResp the respose data from RIL. 798 * @return negative value request was not handled or get error 799 * 0 request was handled succesfully, but no response data 800 * positive value success, data length of response 801 */ 802 int invokeOemRilRequestRaw(in byte[] oemReq, out byte[] oemResp); 803 804 /** 805 * Check if any mobile Radios need to be shutdown. 806 * 807 * @return true is any mobile radio needs to be shutdown 808 */ 809 boolean needMobileRadioShutdown(); 810 811 /** 812 * Shutdown Mobile Radios 813 */ 814 void shutdownMobileRadios(); 815} 816