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