TelephonyIntents.java revision 627bc36eb7827c5a72f5a8ecb085028fb485f72f
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
17package 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 */
26public 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     * <p>Broadcast Action: The emergency callback mode is changed.
80     * <ul>
81     *   <li><em>phoneinECMState</em> - A boolean value,true=phone in ECM, false=ECM off</li>
82     * </ul>
83     * <p class="note">
84     * You can <em>not</em> receive this through components declared
85     * in manifests, only by explicitly registering for it with
86     * {@link android.content.Context#registerReceiver(android.content.BroadcastReceiver,
87     * android.content.IntentFilter) Context.registerReceiver()}.
88     *
89     * <p class="note">
90     * Requires no permission.
91     *
92     * <p class="note">This is a protected intent that can only be sent
93     * by the system.
94     */
95    public static final String ACTION_EMERGENCY_CALLBACK_MODE_CHANGED
96            = "android.intent.action.EMERGENCY_CALLBACK_MODE_CHANGED";
97    /**
98     * Broadcast Action: The phone's signal strength has changed. The intent will have the
99     * following extra values:</p>
100     * <ul>
101     *   <li><em>phoneName</em> - A string version of the phone name.</li>
102     *   <li><em>asu</em> - A numeric value for the signal strength.
103     *          An ASU is 0-31 or -1 if unknown (for GSM, dBm = -113 - 2 * asu).
104     *          The following special values are defined:
105     *          <ul><li>0 means "-113 dBm or less".</li><li>31 means "-51 dBm or greater".</li></ul>
106     *   </li>
107     * </ul>
108     *
109     * <p class="note">
110     * You can <em>not</em> receive this through components declared
111     * in manifests, only by exlicitly 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 the READ_PHONE_STATE 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_SIGNAL_STRENGTH_CHANGED = "android.intent.action.SIG_STR";
122
123
124    /**
125     * Broadcast Action: The data connection state has changed for any one of the
126     * phone's mobile data connections (eg, default, MMS or GPS specific connection).
127     * The intent will have the following extra values:</p>
128     * <dl>
129     *   <dt>phoneName</dt><dd>A string version of the phone name.</dd>
130     *   <dt>state</dt><dd>One of {@code CONNECTED}, {@code CONNECTING},
131     *      or {@code DISCONNECTED}.</dd>
132     *   <dt>apn</dt><dd>A string that is the APN associated with this connection.</dd>
133     *   <dt>apnType</dt><dd>A string array of APN types associated with this connection.
134     *      The APN type {@code *} is a special type that means this APN services all types.</dd>
135     * </dl>
136     *
137     * <p class="note">
138     * Requires the READ_PHONE_STATE permission.
139     *
140     * <p class="note">This is a protected intent that can only be sent
141     * by the system.
142     */
143    public static final String ACTION_ANY_DATA_CONNECTION_STATE_CHANGED
144            = "android.intent.action.ANY_DATA_STATE";
145
146    /**
147     * Broadcast Action: An attempt to establish a data connection has failed.
148     * The intent will have the following extra values:</p>
149     * <dl>
150     *   <dt>phoneName</dt><dd>A string version of the phone name.</dd>
151     *   <dt>state</dt><dd>One of {@code CONNECTED}, {@code CONNECTING}, or {code DISCONNECTED}.</dd>
152     *   <dt>reason</dt><dd>A string indicating the reason for the failure, if available.</dd>
153     * </dl>
154     *
155     * <p class="note">
156     * Requires the READ_PHONE_STATE permission.
157     *
158     * <p class="note">This is a protected intent that can only be sent
159     * by the system.
160     */
161    public static final String ACTION_DATA_CONNECTION_FAILED
162            = "android.intent.action.DATA_CONNECTION_FAILED";
163
164
165    /**
166     * Broadcast Action: The sim card state has changed.
167     * The intent will have the following extra values:</p>
168     * <dl>
169     *   <dt>phoneName</dt><dd>A string version of the phone name.</dd>
170     *   <dt>ss</dt><dd>The sim state. One of:
171     *     <dl>
172     *       <dt>{@code ABSENT}</dt><dd>SIM card not found</dd>
173     *       <dt>{@code LOCKED}</dt><dd>SIM card locked (see {@code reason})</dd>
174     *       <dt>{@code READY}</dt><dd>SIM card ready</dd>
175     *       <dt>{@code IMSI}</dt><dd>FIXME: what is this state?</dd>
176     *       <dt>{@code LOADED}</dt><dd>SIM card data loaded</dd>
177     *     </dl></dd>
178     *   <dt>reason</dt><dd>The reason why ss is {@code LOCKED}; null otherwise.</dd>
179     *   <dl>
180     *       <dt>{@code PIN}</dt><dd>locked on PIN1</dd>
181     *       <dt>{@code PUK}</dt><dd>locked on PUK1</dd>
182     *       <dt>{@code NETWORK}</dt><dd>locked on network personalization</dd>
183     *   </dl>
184     * </dl>
185     *
186     * <p class="note">
187     * Requires the READ_PHONE_STATE permission.
188     *
189     * <p class="note">This is a protected intent that can only be sent
190     * by the system.
191     */
192    public static final String ACTION_SIM_STATE_CHANGED
193            = "android.intent.action.SIM_STATE_CHANGED";
194
195
196    /**
197     * Broadcast Action: The time was set by the carrier (typically by the NITZ string).
198     * This is a sticky broadcast.
199     * The intent will have the following extra values:</p>
200     * <ul>
201     *   <li><em>time</em> - The time as a long in UTC milliseconds.</li>
202     * </ul>
203     *
204     * <p class="note">
205     * Requires the READ_PHONE_STATE permission.
206     *
207     * <p class="note">This is a protected intent that can only be sent
208     * by the system.
209     */
210    public static final String ACTION_NETWORK_SET_TIME = "android.intent.action.NETWORK_SET_TIME";
211
212
213    /**
214     * Broadcast Action: The timezone was set by the carrier (typically by the NITZ string).
215     * This is a sticky broadcast.
216     * The intent will have the following extra values:</p>
217     * <ul>
218     *   <li><em>time-zone</em> - The java.util.TimeZone.getID() value identifying the new time
219     *          zone.</li>
220     * </ul>
221     *
222     * <p class="note">
223     * Requires the READ_PHONE_STATE permission.
224     *
225     * <p class="note">This is a protected intent that can only be sent
226     * by the system.
227     */
228    public static final String ACTION_NETWORK_SET_TIMEZONE
229            = "android.intent.action.NETWORK_SET_TIMEZONE";
230
231    /**
232     * <p>Broadcast Action: It indicates the Emergency callback mode blocks datacall/sms
233     * <p class="note">.
234     * This is to pop up a notice to show user that the phone is in emergency callback mode
235     * and atacalls and outgoing sms are blocked.
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_SHOW_NOTICE_ECM_BLOCK_OTHERS
241            = "android.intent.action.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS";
242
243    /**
244     * Activity Action: Start this activity to invoke the carrier setup app.
245     * The carrier app must be signed using a certificate that matches the UICC access rules.
246     *
247     * <p class="note">Callers of this should hold the android.permission.INVOKE_CARRIER_SETUP
248     * permission.</p>
249     */
250    public static final String ACTION_CARRIER_SETUP = "android.intent.action.ACTION_CARRIER_SETUP";
251
252    /**
253     * <p>Broadcast Action: Indicates that the action is forbidden by network.
254     * <p class="note">
255     * This is for the OEM applications to understand about possible provisioning issues.
256     * Used in OMA-DM applications.
257     */
258    public static final String ACTION_FORBIDDEN_NO_SERVICE_AUTHORIZATION
259            = "android.intent.action.ACTION_FORBIDDEN_NO_SERVICE_AUTHORIZATION";
260
261    /**
262     * Broadcast Action: A "secret code" has been entered in the dialer. Secret codes are
263     * of the form {@code *#*#<code>#*#*}. The intent will have the data URI:
264     *
265     * {@code android_secret_code://<code>}
266     */
267    public static final String SECRET_CODE_ACTION = "android.provider.Telephony.SECRET_CODE";
268
269    /**
270     * Broadcast Action: The Service Provider string(s) have been updated.  Activities or
271     * services that use these strings should update their display.
272     * The intent will have the following extra values:</p>
273     *
274     * <dl>
275     *   <dt>showPlmn</dt><dd>Boolean that indicates whether the PLMN should be shown.</dd>
276     *   <dt>plmn</dt><dd>The operator name of the registered network, as a string.</dd>
277     *   <dt>showSpn</dt><dd>Boolean that indicates whether the SPN should be shown.</dd>
278     *   <dt>spn</dt><dd>The service provider name, as a string.</dd>
279     * </dl>
280     *
281     * Note that <em>showPlmn</em> may indicate that <em>plmn</em> should be displayed, even
282     * though the value for <em>plmn</em> is null.  This can happen, for example, if the phone
283     * has not registered to a network yet.  In this case the receiver may substitute an
284     * appropriate placeholder string (eg, "No service").
285     *
286     * It is recommended to display <em>plmn</em> before / above <em>spn</em> if
287     * both are displayed.
288     *
289     * <p>Note: this is a protected intent that can only be sent by the system.
290     */
291    public static final String SPN_STRINGS_UPDATED_ACTION =
292            "android.provider.Telephony.SPN_STRINGS_UPDATED";
293
294    public static final String EXTRA_SHOW_PLMN  = "showPlmn";
295    public static final String EXTRA_PLMN       = "plmn";
296    public static final String EXTRA_SHOW_SPN   = "showSpn";
297    public static final String EXTRA_SPN        = "spn";
298    public static final String EXTRA_DATA_SPN   = "spnData";
299
300    /**
301     * <p>Broadcast Action: It indicates one column of a subinfo record has been changed
302     * <p class="note">This is a protected intent that can only be sent
303     * by the system.
304     */
305    public static final String ACTION_SUBINFO_CONTENT_CHANGE
306            = "android.intent.action.ACTION_SUBINFO_CONTENT_CHANGE";
307
308    /**
309     * <p>Broadcast Action: It indicates subinfo record update is completed
310     * when SIM inserted state change
311     * <p class="note">This is a protected intent that can only be sent
312     * by the system.
313     */
314    public static final String ACTION_SUBINFO_RECORD_UPDATED
315            = "android.intent.action.ACTION_SUBINFO_RECORD_UPDATED";
316
317    /**
318     * Broadcast Action: The default subscription has changed.  This has the following
319     * extra values:</p>
320     * <ul>
321     *   <li><em>subscription</em> - A int, the current default subscription.</li>
322     * </ul>
323     */
324    public static final String ACTION_DEFAULT_SUBSCRIPTION_CHANGED
325            = "android.intent.action.ACTION_DEFAULT_SUBSCRIPTION_CHANGED";
326
327    /**
328     * Broadcast Action: The default data subscription has changed.  This has the following
329     * extra values:</p>
330     * <ul>
331     *   <li><em>subscription</em> - A int, the current data default subscription.</li>
332     * </ul>
333     */
334    public static final String ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED
335            = "android.intent.action.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED";
336
337    /**
338     * Broadcast Action: The default voice subscription has changed.  This has the following
339     * extra values:</p>
340     * <ul>
341     *   <li><em>subscription</em> - A int, the current voice default subscription.</li>
342     * </ul>
343     */
344    public static final String ACTION_DEFAULT_VOICE_SUBSCRIPTION_CHANGED
345            = "android.intent.action.ACTION_DEFAULT_VOICE_SUBSCRIPTION_CHANGED";
346
347    /**
348     * Broadcast Action: The default sms subscription has changed.  This has the following
349     * extra values:</p>
350     * <ul>
351     *   <li><em>subscription</em> - A int, the current sms default subscription.</li>
352     * </ul>
353     */
354    public static final String ACTION_DEFAULT_SMS_SUBSCRIPTION_CHANGED
355            = "android.intent.action.ACTION_DEFAULT_SMS_SUBSCRIPTION_CHANGED";
356
357    /*
358     * Broadcast Action: An attempt to set phone radio type and access technology has changed.
359     * This has the following extra values:
360     * <ul>
361     *   <li><em>phones radio access family </em> - A RadioAccessFamily
362     *   array, contain phone ID and new radio access family for each phone.</li>
363     * </ul>
364     */
365    public static final String ACTION_SET_RADIO_CAPABILITY_DONE =
366            "android.intent.action.ACTION_SET_RADIO_CAPABILITY_DONE";
367
368    public static final String EXTRA_RADIO_ACCESS_FAMILY = "rafs";
369
370    /*
371     * Broadcast Action: An attempt to set phone radio access family has failed.
372     */
373    public static final String ACTION_SET_RADIO_CAPABILITY_FAILED =
374            "android.intent.action.ACTION_SET_RADIO_CAPABILITY_FAILED";
375}
376