• 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 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