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