Home | History | Annotate | Download | only in telephony
      1 /*
      2  * Copyright (C) 2008 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 
     17 package com.android.internal.telephony;
     18 
     19 /**
     20  * The intents that the telephony services broadcast.
     21  *
     22  * <p class="warning">
     23  * THESE ARE NOT THE API!  Use the {@link android.telephony.TelephonyManager} class.
     24  * DON'T LISTEN TO THESE DIRECTLY.
     25  */
     26 public class TelephonyIntents {
     27 
     28     /**
     29      * Broadcast Action: The phone service state has changed. The intent will have the following
     30      * extra values:</p>
     31      * <ul>
     32      *   <li><em>state</em> - An int with one of the following values:
     33      *          {@link android.telephony.ServiceState#STATE_IN_SERVICE},
     34      *          {@link android.telephony.ServiceState#STATE_OUT_OF_SERVICE},
     35      *          {@link android.telephony.ServiceState#STATE_EMERGENCY_ONLY}
     36      *          or {@link android.telephony.ServiceState#STATE_POWER_OFF}
     37      *   <li><em>roaming</em> - A boolean value indicating whether the phone is roaming.</li>
     38      *   <li><em>operator-alpha-long</em> - The carrier name as a string.</li>
     39      *   <li><em>operator-alpha-short</em> - A potentially shortened version of the carrier name,
     40      *          as a string.</li>
     41      *   <li><em>operator-numeric</em> - A number representing the carrier, as a string. This is
     42      *          a five or six digit number consisting of the MCC (Mobile Country Code, 3 digits)
     43      *          and MNC (Mobile Network code, 2-3 digits).</li>
     44      *   <li><em>manual</em> - A boolean, where true indicates that the user has chosen to select
     45      *          the network manually, and false indicates that network selection is handled by the
     46      *          phone.</li>
     47      * </ul>
     48      *
     49      * <p class="note">
     50      * Requires the READ_PHONE_STATE permission.
     51      *
     52      * <p class="note">This is a protected intent that can only be sent
     53      * by the system.
     54      */
     55     public static final String ACTION_SERVICE_STATE_CHANGED = "android.intent.action.SERVICE_STATE";
     56 
     57     /**
     58      * <p>Broadcast Action: The radio technology has changed. The intent will have the following
     59      * extra values:</p>
     60      * <ul>
     61      *   <li><em>phoneName</em> - A string version of the new phone name.</li>
     62      * </ul>
     63      *
     64      * <p class="note">
     65      * You can <em>not</em> receive this through components declared
     66      * in manifests, only by explicitly registering for it with
     67      * {@link android.content.Context#registerReceiver(android.content.BroadcastReceiver,
     68      * android.content.IntentFilter) Context.registerReceiver()}.
     69      *
     70      * <p class="note">
     71      * Requires no permission.
     72      *
     73      * <p class="note">This is a protected intent that can only be sent
     74      * by the system.
     75      */
     76     public static final String ACTION_RADIO_TECHNOLOGY_CHANGED
     77             = "android.intent.action.RADIO_TECHNOLOGY";
     78 
     79     /**
     80      * <p>Broadcast Action: The emergency callback mode is changed.
     81      * <ul>
     82      *   <li><em>phoneinECMState</em> - A boolean value,true=phone in ECM, false=ECM off</li>
     83      * </ul>
     84      * <p class="note">
     85      * You can <em>not</em> receive this through components declared
     86      * in manifests, only by explicitly registering for it with
     87      * {@link android.content.Context#registerReceiver(android.content.BroadcastReceiver,
     88      * android.content.IntentFilter) Context.registerReceiver()}.
     89      *
     90      * <p class="note">
     91      * Requires no permission.
     92      *
     93      * <p class="note">This is a protected intent that can only be sent
     94      * by the system.
     95      */
     96     public static final String ACTION_EMERGENCY_CALLBACK_MODE_CHANGED
     97             = "android.intent.action.EMERGENCY_CALLBACK_MODE_CHANGED";
     98 
     99     /**
    100      * <p>Broadcast Action: The emergency call state is changed.
    101      * <ul>
    102      *   <li><em>phoneInEmergencyCall</em> - A boolean value, true if phone in emergency call,
    103      *   false otherwise</li>
    104      * </ul>
    105      * <p class="note">
    106      * You can <em>not</em> receive this through components declared
    107      * in manifests, only by explicitly registering for it with
    108      * {@link android.content.Context#registerReceiver(android.content.BroadcastReceiver,
    109      * android.content.IntentFilter) Context.registerReceiver()}.
    110      *
    111      * <p class="note">
    112      * Requires no permission.
    113      *
    114      * <p class="note">This is a protected intent that can only be sent
    115      * by the system.
    116      */
    117     public static final String ACTION_EMERGENCY_CALL_STATE_CHANGED
    118             = "android.intent.action.EMERGENCY_CALL_STATE_CHANGED";
    119 
    120     /**
    121      * Broadcast Action: The phone's signal strength has changed. The intent will have the
    122      * following extra values:</p>
    123      * <ul>
    124      *   <li><em>phoneName</em> - A string version of the phone name.</li>
    125      *   <li><em>asu</em> - A numeric value for the signal strength.
    126      *          An ASU is 0-31 or -1 if unknown (for GSM, dBm = -113 - 2 * asu).
    127      *          The following special values are defined:
    128      *          <ul><li>0 means "-113 dBm or less".</li><li>31 means "-51 dBm or greater".</li></ul>
    129      *   </li>
    130      * </ul>
    131      *
    132      * <p class="note">
    133      * You can <em>not</em> receive this through components declared
    134      * in manifests, only by exlicitly registering for it with
    135      * {@link android.content.Context#registerReceiver(android.content.BroadcastReceiver,
    136      * android.content.IntentFilter) Context.registerReceiver()}.
    137      *
    138      * <p class="note">
    139      * Requires the READ_PHONE_STATE permission.
    140      *
    141      * <p class="note">This is a protected intent that can only be sent
    142      * by the system.
    143      */
    144     public static final String ACTION_SIGNAL_STRENGTH_CHANGED = "android.intent.action.SIG_STR";
    145 
    146 
    147     /**
    148      * Broadcast Action: The data connection state has changed for any one of the
    149      * phone's mobile data connections (eg, default, MMS or GPS specific connection).
    150      * The intent will have the following extra values:</p>
    151      * <dl>
    152      *   <dt>phoneName</dt><dd>A string version of the phone name.</dd>
    153      *   <dt>state</dt><dd>One of {@code CONNECTED}, {@code CONNECTING},
    154      *      or {@code DISCONNECTED}.</dd>
    155      *   <dt>apn</dt><dd>A string that is the APN associated with this connection.</dd>
    156      *   <dt>apnType</dt><dd>A string array of APN types associated with this connection.
    157      *      The APN type {@code *} is a special type that means this APN services all types.</dd>
    158      * </dl>
    159      *
    160      * <p class="note">
    161      * Requires the READ_PHONE_STATE permission.
    162      *
    163      * <p class="note">This is a protected intent that can only be sent
    164      * by the system.
    165      */
    166     public static final String ACTION_ANY_DATA_CONNECTION_STATE_CHANGED
    167             = "android.intent.action.ANY_DATA_STATE";
    168 
    169     /**
    170      * Broadcast Action: An attempt to establish a data connection has failed.
    171      * The intent will have the following extra values:</p>
    172      * <dl>
    173      *   <dt>phoneName</dt><dd>A string version of the phone name.</dd>
    174      *   <dt>state</dt><dd>One of {@code CONNECTED}, {@code CONNECTING}, or {code DISCONNECTED}.</dd>
    175      *   <dt>reason</dt><dd>A string indicating the reason for the failure, if available.</dd>
    176      * </dl>
    177      *
    178      * <p class="note">
    179      * Requires the READ_PHONE_STATE permission.
    180      *
    181      * <p class="note">This is a protected intent that can only be sent
    182      * by the system.
    183      */
    184     public static final String ACTION_DATA_CONNECTION_FAILED
    185             = "android.intent.action.DATA_CONNECTION_FAILED";
    186 
    187 
    188     /**
    189      * Broadcast Action: The sim card state has changed.
    190      * The intent will have the following extra values:</p>
    191      * <dl>
    192      *   <dt>phoneName</dt><dd>A string version of the phone name.</dd>
    193      *   <dt>ss</dt><dd>The sim state. One of:
    194      *     <dl>
    195      *       <dt>{@code ABSENT}</dt><dd>SIM card not found</dd>
    196      *       <dt>{@code LOCKED}</dt><dd>SIM card locked (see {@code reason})</dd>
    197      *       <dt>{@code READY}</dt><dd>SIM card ready</dd>
    198      *       <dt>{@code IMSI}</dt><dd>FIXME: what is this state?</dd>
    199      *       <dt>{@code LOADED}</dt><dd>SIM card data loaded</dd>
    200      *     </dl></dd>
    201      *   <dt>reason</dt><dd>The reason why ss is {@code LOCKED}; null otherwise.</dd>
    202      *   <dl>
    203      *       <dt>{@code PIN}</dt><dd>locked on PIN1</dd>
    204      *       <dt>{@code PUK}</dt><dd>locked on PUK1</dd>
    205      *       <dt>{@code NETWORK}</dt><dd>locked on network personalization</dd>
    206      *   </dl>
    207      * </dl>
    208      *
    209      * <p class="note">
    210      * Requires the READ_PHONE_STATE permission.
    211      *
    212      * <p class="note">This is a protected intent that can only be sent
    213      * by the system.
    214      */
    215     public static final String ACTION_SIM_STATE_CHANGED
    216             = "android.intent.action.SIM_STATE_CHANGED";
    217 
    218 
    219     /**
    220      * Broadcast Action: The time was set by the carrier (typically by the NITZ string).
    221      * This is a sticky broadcast.
    222      * The intent will have the following extra values:</p>
    223      * <ul>
    224      *   <li><em>time</em> - The time as a long in UTC milliseconds.</li>
    225      * </ul>
    226      *
    227      * <p class="note">
    228      * Requires the READ_PHONE_STATE permission.
    229      *
    230      * <p class="note">This is a protected intent that can only be sent
    231      * by the system.
    232      */
    233     public static final String ACTION_NETWORK_SET_TIME = "android.intent.action.NETWORK_SET_TIME";
    234 
    235 
    236     /**
    237      * Broadcast Action: The timezone was set by the carrier (typically by the NITZ string).
    238      * This is a sticky broadcast.
    239      * The intent will have the following extra values:</p>
    240      * <ul>
    241      *   <li><em>time-zone</em> - The java.util.TimeZone.getID() value identifying the new time
    242      *          zone.</li>
    243      * </ul>
    244      *
    245      * <p class="note">
    246      * Requires the READ_PHONE_STATE permission.
    247      *
    248      * <p class="note">This is a protected intent that can only be sent
    249      * by the system.
    250      */
    251     public static final String ACTION_NETWORK_SET_TIMEZONE
    252             = "android.intent.action.NETWORK_SET_TIMEZONE";
    253 
    254     /**
    255      * <p>Broadcast Action: It indicates the Emergency callback mode blocks datacall/sms
    256      * <p class="note">.
    257      * This is to pop up a notice to show user that the phone is in emergency callback mode
    258      * and atacalls and outgoing sms are blocked.
    259      *
    260      * <p class="note">This is a protected intent that can only be sent
    261      * by the system.
    262      */
    263     public static final String ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS
    264             = "android.intent.action.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS";
    265 
    266     /**
    267      * Activity Action: Start this activity to invoke the carrier setup app.
    268      * The carrier app must be signed using a certificate that matches the UICC access rules.
    269      *
    270      * <p class="note">Callers of this should hold the android.permission.INVOKE_CARRIER_SETUP
    271      * permission.</p>
    272      */
    273     public static final String ACTION_CARRIER_SETUP = "android.intent.action.ACTION_CARRIER_SETUP";
    274 
    275     /**
    276      * <p>Broadcast Action: Indicates that the action is forbidden by network.
    277      * <p class="note">
    278      * This is for the OEM applications to understand about possible provisioning issues.
    279      * Used in OMA-DM applications.
    280      */
    281     public static final String ACTION_FORBIDDEN_NO_SERVICE_AUTHORIZATION
    282             = "android.intent.action.ACTION_FORBIDDEN_NO_SERVICE_AUTHORIZATION";
    283 
    284     /**
    285      * Broadcast Action: A "secret code" has been entered in the dialer. Secret codes are
    286      * of the form {@code *#*#<code>#*#*}. The intent will have the data URI:
    287      *
    288      * {@code android_secret_code://<code>}
    289      */
    290     public static final String SECRET_CODE_ACTION = "android.provider.Telephony.SECRET_CODE";
    291 
    292     /**
    293      * Broadcast Action: The Service Provider string(s) have been updated.  Activities or
    294      * services that use these strings should update their display.
    295      * The intent will have the following extra values:</p>
    296      *
    297      * <dl>
    298      *   <dt>showPlmn</dt><dd>Boolean that indicates whether the PLMN should be shown.</dd>
    299      *   <dt>plmn</dt><dd>The operator name of the registered network, as a string.</dd>
    300      *   <dt>showSpn</dt><dd>Boolean that indicates whether the SPN should be shown.</dd>
    301      *   <dt>spn</dt><dd>The service provider name, as a string.</dd>
    302      * </dl>
    303      *
    304      * Note that <em>showPlmn</em> may indicate that <em>plmn</em> should be displayed, even
    305      * though the value for <em>plmn</em> is null.  This can happen, for example, if the phone
    306      * has not registered to a network yet.  In this case the receiver may substitute an
    307      * appropriate placeholder string (eg, "No service").
    308      *
    309      * It is recommended to display <em>plmn</em> before / above <em>spn</em> if
    310      * both are displayed.
    311      *
    312      * <p>Note: this is a protected intent that can only be sent by the system.
    313      */
    314     public static final String SPN_STRINGS_UPDATED_ACTION =
    315             "android.provider.Telephony.SPN_STRINGS_UPDATED";
    316 
    317     public static final String EXTRA_SHOW_PLMN  = "showPlmn";
    318     public static final String EXTRA_PLMN       = "plmn";
    319     public static final String EXTRA_SHOW_SPN   = "showSpn";
    320     public static final String EXTRA_SPN        = "spn";
    321     public static final String EXTRA_DATA_SPN   = "spnData";
    322 
    323     /**
    324      * <p>Broadcast Action: It indicates one column of a subinfo record has been changed
    325      * <p class="note">This is a protected intent that can only be sent
    326      * by the system.
    327      */
    328     public static final String ACTION_SUBINFO_CONTENT_CHANGE
    329             = "android.intent.action.ACTION_SUBINFO_CONTENT_CHANGE";
    330 
    331     /**
    332      * <p>Broadcast Action: It indicates subinfo record update is completed
    333      * when SIM inserted state change
    334      * <p class="note">This is a protected intent that can only be sent
    335      * by the system.
    336      */
    337     public static final String ACTION_SUBINFO_RECORD_UPDATED
    338             = "android.intent.action.ACTION_SUBINFO_RECORD_UPDATED";
    339 
    340     /**
    341      * Broadcast Action: The default subscription has changed.  This has the following
    342      * extra values:</p>
    343      * <ul>
    344      *   <li><em>subscription</em> - A int, the current default subscription.</li>
    345      * </ul>
    346      */
    347     public static final String ACTION_DEFAULT_SUBSCRIPTION_CHANGED
    348             = "android.intent.action.ACTION_DEFAULT_SUBSCRIPTION_CHANGED";
    349 
    350     /**
    351      * Broadcast Action: The default data subscription has changed.  This has the following
    352      * extra values:</p>
    353      * <ul>
    354      *   <li><em>subscription</em> - A int, the current data default subscription.</li>
    355      * </ul>
    356      */
    357     public static final String ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED
    358             = "android.intent.action.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED";
    359 
    360     /**
    361      * Broadcast Action: The default voice subscription has changed.  This has the following
    362      * extra values:</p>
    363      * <ul>
    364      *   <li><em>subscription</em> - A int, the current voice default subscription.</li>
    365      * </ul>
    366      */
    367     public static final String ACTION_DEFAULT_VOICE_SUBSCRIPTION_CHANGED
    368             = "android.intent.action.ACTION_DEFAULT_VOICE_SUBSCRIPTION_CHANGED";
    369 
    370     /**
    371      * Broadcast Action: The default sms subscription has changed.  This has the following
    372      * extra values:</p>
    373      * <ul>
    374      *   <li><em>subscription</em> - A int, the current sms default subscription.</li>
    375      * </ul>
    376      */
    377     public static final String ACTION_DEFAULT_SMS_SUBSCRIPTION_CHANGED
    378             = "android.intent.action.ACTION_DEFAULT_SMS_SUBSCRIPTION_CHANGED";
    379 
    380     /*
    381      * Broadcast Action: An attempt to set phone radio type and access technology has changed.
    382      * This has the following extra values:
    383      * <ul>
    384      *   <li><em>phones radio access family </em> - A RadioAccessFamily
    385      *   array, contain phone ID and new radio access family for each phone.</li>
    386      * </ul>
    387      *
    388      * <p class="note">
    389      * Requires the READ_PHONE_STATE permission.
    390      */
    391     public static final String ACTION_SET_RADIO_CAPABILITY_DONE =
    392             "android.intent.action.ACTION_SET_RADIO_CAPABILITY_DONE";
    393 
    394     public static final String EXTRA_RADIO_ACCESS_FAMILY = "rafs";
    395 
    396     /*
    397      * Broadcast Action: An attempt to set phone radio access family has failed.
    398      */
    399     public static final String ACTION_SET_RADIO_CAPABILITY_FAILED =
    400             "android.intent.action.ACTION_SET_RADIO_CAPABILITY_FAILED";
    401 
    402     /**
    403      * <p>Broadcast Action: when data connections get redirected with validation failure.
    404      * intended for sim/account status checks and only sent to the specified carrier app
    405      * The intent will have the following extra values:</p>
    406      * <ul>
    407      *   <li>apnType</li><dd>A string with the apn type.</dd>
    408      *   <li>redirectionUrl</li><dd>redirection url string</dd>
    409      *   <li>subId</dt><li>Sub Id which associated the data connection failure.</dd>
    410      * </ul>
    411      * <p class="note">This is a protected intent that can only be sent by the system.</p>
    412      */
    413     public static final String ACTION_CARRIER_SIGNAL_REDIRECTED =
    414             "android.intent.action.CARRIER_SIGNAL_REDIRECTED";
    415     /**
    416      * <p>Broadcast Action: when data connections setup fails.
    417      * intended for sim/account status checks and only sent to the specified carrier app
    418      * The intent will have the following extra values:</p>
    419      * <ul>
    420      *   <li>apnType</li><dd>A string with the apn type.</dd>
    421      *   <li>errorCode</li><dd>A integer with dataFailCause.</dd>
    422      *   <li>subId</dt><li>Sub Id which associated the data connection failure.</dd>
    423      * </ul>
    424      * <p class="note">This is a protected intent that can only be sent by the system. </p>
    425      */
    426     public static final String ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED =
    427             "android.intent.action.CARRIER_SIGNAL_REQUEST_NETWORK_FAILED";
    428 
    429     /**
    430      * <p>Broadcast Action: when pco value is available.
    431      * intended for sim/account status checks and only sent to the specified carrier app
    432      * The intent will have the following extra values:</p>
    433      * <ul>
    434      *   <li>apnType</li><dd>A string with the apn type.</dd>
    435      *   <li>apnProto</li><dd>A string with the protocol of the apn connection (IP,IPV6,
    436      *                        IPV4V6)</dd>
    437      *   <li>pcoId</li><dd>An integer indicating the pco id for the data.</dd>
    438      *   <li>pcoValue</li><dd>A byte array of pco data read from modem.</dd>
    439      *   <li>subId</dt><li>Sub Id which associated the data connection.</dd>
    440      * </ul>
    441      * <p class="note">This is a protected intent that can only be sent by the system. </p>
    442      */
    443     public static final String ACTION_CARRIER_SIGNAL_PCO_VALUE =
    444             "android.intent.action.CARRIER_SIGNAL_PCO_VALUE";
    445 
    446     // CARRIER_SIGNAL_ACTION extra keys
    447     public static final String EXTRA_REDIRECTION_URL_KEY = "redirectionUrl";
    448     public static final String EXTRA_ERROR_CODE_KEY = "errorCode";
    449     public static final String EXTRA_APN_TYPE_KEY = "apnType";
    450     public static final String EXTRA_APN_PROTO_KEY = "apnProto";
    451     public static final String EXTRA_PCO_ID_KEY = "pcoId";
    452     public static final String EXTRA_PCO_VALUE_KEY = "pcoValue";
    453 
    454 
    455    /**
    456      * Broadcast action to trigger CI OMA-DM Session.
    457     */
    458     public static final String ACTION_REQUEST_OMADM_CONFIGURATION_UPDATE =
    459             "com.android.omadm.service.CONFIGURATION_UPDATE";
    460 }
    461