PhoneConstants.java revision 4bd4389616fae01439a44920286a70806526d8c0
17a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé/*
27a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé * Copyright (C) 2012 The Android Open Source Project
37a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé *
47a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé * Licensed under the Apache License, Version 2.0 (the "License");
57a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé * you may not use this file except in compliance with the License.
67a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé * You may obtain a copy of the License at
77a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé *
87a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé *      http://www.apache.org/licenses/LICENSE-2.0
97a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé *
107a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé * Unless required by applicable law or agreed to in writing, software
117a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé * distributed under the License is distributed on an "AS IS" BASIS,
127a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
137a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé * See the License for the specific language governing permissions and
147a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé * limitations under the License.
157a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé */
167a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhépackage com.android.internal.telephony;
177a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé
187a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé/**
197a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé * @hide
207a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé */
211b86fe063badb5f28c467ade39be0f4008688947Andreas Huberpublic class PhoneConstants {
227a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé
237a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    /**
247a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé     * The phone state. One of the following:<p>
251b86fe063badb5f28c467ade39be0f4008688947Andreas Huber     * <ul>
261b86fe063badb5f28c467ade39be0f4008688947Andreas Huber     * <li>IDLE = no phone activity</li>
271b86fe063badb5f28c467ade39be0f4008688947Andreas Huber     * <li>RINGING = a phone call is ringing or call waiting.
287a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé     *  In the latter case, another call is active as well</li>
297a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé     * <li>OFFHOOK = The phone is off hook. At least one call
30a1df816c0677185534babba6ffc29970b048e52eLajos Molnar     * exists that is dialing, active or holding and no calls are
317a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé     * ringing or waiting.</li>
327a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé     * </ul>
337a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé     */
347a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public enum State {
357a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé        IDLE, RINGING, OFFHOOK;
361b86fe063badb5f28c467ade39be0f4008688947Andreas Huber    };
371b86fe063badb5f28c467ade39be0f4008688947Andreas Huber
381b86fe063badb5f28c467ade39be0f4008688947Andreas Huber   /**
3981e68448f3361eaf8618930471fdc3c21bdf5cbcAndreas Huber     * The state of a data connection.
407a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé     * <ul>
417a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé     * <li>CONNECTED = IP traffic should be available</li>
427a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé     * <li>CONNECTING = Currently setting up data connection</li>
437a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé     * <li>DISCONNECTED = IP not available</li>
441b86fe063badb5f28c467ade39be0f4008688947Andreas Huber     * <li>SUSPENDED = connection is created but IP traffic is
457a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé     *                 temperately not available. i.e. voice call is in place
467a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé     *                 in 2G network</li>
477a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé     * </ul>
487a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé     */
497a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public enum DataState {
507a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé        CONNECTED, CONNECTING, DISCONNECTED, SUSPENDED;
517a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    };
527a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé
537a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final String STATE_KEY = "state";
541d15ab58bf8239069ef343de6cb21aabf3ef7d78Lajos Molnar
557a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    // Radio Type
567a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final int PHONE_TYPE_NONE = RILConstants.NO_PHONE;
577a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final int PHONE_TYPE_GSM = RILConstants.GSM_PHONE;
587a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final int PHONE_TYPE_CDMA = RILConstants.CDMA_PHONE;
597a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final int PHONE_TYPE_SIP = RILConstants.SIP_PHONE;
607a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final int PHONE_TYPE_THIRD_PARTY = RILConstants.THIRD_PARTY_PHONE;
617a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final int PHONE_TYPE_IMS = RILConstants.IMS_PHONE;
627a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé
637a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    // Modes for LTE_ON_CDMA
647a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final int LTE_ON_CDMA_UNKNOWN = RILConstants.LTE_ON_CDMA_UNKNOWN;
657a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final int LTE_ON_CDMA_FALSE = RILConstants.LTE_ON_CDMA_FALSE;
667a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final int LTE_ON_CDMA_TRUE = RILConstants.LTE_ON_CDMA_TRUE;
677a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé
687a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    // Number presentation type for caller id display (From internal/Connection.java)
697a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final int PRESENTATION_ALLOWED = 1;    // normal
707a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final int PRESENTATION_RESTRICTED = 2; // block by user
717a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final int PRESENTATION_UNKNOWN = 3;    // no specified or unknown by network
727a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final int PRESENTATION_PAYPHONE = 4;   // show pay phone info
737a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé
747a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé
757a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final String PHONE_NAME_KEY = "phoneName";
767a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final String FAILURE_REASON_KEY = "reason";
777a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final String STATE_CHANGE_REASON_KEY = "reason";
787a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final String DATA_NETWORK_TYPE_KEY = "networkType";
797a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final String DATA_FAILURE_CAUSE_KEY = "failCause";
807a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final String DATA_APN_TYPE_KEY = "apnType";
817a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final String DATA_APN_KEY = "apn";
827a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final String DATA_LINK_PROPERTIES_KEY = "linkProperties";
837a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final String DATA_NETWORK_CAPABILITIES_KEY = "networkCapabilities";
847a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé
857a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final String DATA_IFACE_NAME_KEY = "iface";
867a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final String NETWORK_UNAVAILABLE_KEY = "networkUnvailable";
877a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final String DATA_NETWORK_ROAMING_KEY = "networkRoaming";
887a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final String PHONE_IN_ECM_STATE = "phoneinECMState";
897a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé
907a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final String REASON_LINK_PROPERTIES_CHANGED = "linkPropertiesChanged";
917a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé
927a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    /**
93a1df816c0677185534babba6ffc29970b048e52eLajos Molnar     * Return codes for supplyPinReturnResult and
947a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé     * supplyPukReturnResult APIs
957a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé     */
967a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final int PIN_RESULT_SUCCESS = 0;
977a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final int PIN_PASSWORD_INCORRECT = 1;
987a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final int PIN_GENERAL_FAILURE = 2;
997a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé
1007a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    /**
1017a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé     * Return codes for <code>enableApnType()</code>
1027a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé     */
1037a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final int APN_ALREADY_ACTIVE     = 0;
1047a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final int APN_REQUEST_STARTED    = 1;
1057a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final int APN_TYPE_NOT_AVAILABLE = 2;
1067a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final int APN_REQUEST_FAILED     = 3;
1077a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final int APN_ALREADY_INACTIVE   = 4;
108266299cfb628ce2cadccb76443b0566e1a53dbccBernhard Rosenkränzer
1097a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    /**
1107a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé     * APN types for data connections.  These are usage categories for an APN
1117a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé     * entry.  One APN entry may support multiple APN types, eg, a single APN
1127a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé     * may service regular internet traffic ("default") as well as MMS-specific
1137a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé     * connections.<br/>
1147a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé     * APN_TYPE_ALL is a special type to indicate that this APN entry can
1157a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé     * service all data connections.
1167a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé     */
1177a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final String APN_TYPE_ALL = "*";
1187a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    /** APN type for default data traffic */
1197a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final String APN_TYPE_DEFAULT = "default";
1207a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    /** APN type for MMS traffic */
1217a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final String APN_TYPE_MMS = "mms";
1227a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    /** APN type for SUPL assisted GPS */
1237a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final String APN_TYPE_SUPL = "supl";
1247a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    /** APN type for DUN traffic */
125b4a7a2df4c28c3f32b5d877b54831d2cc5d78f81Colin Cross    public static final String APN_TYPE_DUN = "dun";
1267a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    /** APN type for HiPri traffic */
1277a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final String APN_TYPE_HIPRI = "hipri";
1287a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    /** APN type for FOTA */
1297a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final String APN_TYPE_FOTA = "fota";
1307a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    /** APN type for IMS */
1317a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final String APN_TYPE_IMS = "ims";
1327a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    /** APN type for CBS */
1337a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final String APN_TYPE_CBS = "cbs";
1347a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    /** APN type for IA Initial Attach APN */
1357a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final String APN_TYPE_IA = "ia";
1367a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    /** APN type for Emergency PDN. This is not an IA apn, but is used
1377a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé     * for access to carrier services in an emergency call situation. */
1387a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final String APN_TYPE_EMERGENCY = "emergency";
1397a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé
1407a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final int RIL_CARD_MAX_APPS    = 8;
1417a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé
1427a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final int DEFAULT_CARD_INDEX   = 0;
1437a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé
1447a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final int MAX_PHONE_COUNT_SINGLE_SIM = 1;
1457a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé
1467a33b7740412accf6a1cc912686c8d0acfb2a883Oscar Rydhé    public static final int MAX_PHONE_COUNT_DUAL_SIM = 2;
147
148    public static final int MAX_PHONE_COUNT_TRI_SIM = 3;
149
150    public static final String PHONE_KEY = "phone";
151
152    public static final String SLOT_KEY  = "slot";
153
154    /** Fired when a subscriptions phone state changes. */
155    public static final String ACTION_SUBSCRIPTION_PHONE_STATE_CHANGED =
156        "android.intent.action.SUBSCRIPTION_PHONE_STATE";
157
158    // FIXME: This is used to pass a subId via intents, we need to look at its usage, which is
159    // FIXME: extensive, and see if this should be an array of all active subId's or ...?
160    public static final String SUBSCRIPTION_KEY  = "subscription";
161
162    public static final String SUB_SETTING  = "subSettings";
163
164    public static final int SUB1 = 0;
165    public static final int SUB2 = 1;
166    public static final int SUB3 = 2;
167
168    // TODO: Remove these constants and use an int instead.
169    public static final int SIM_ID_1 = 0;
170    public static final int SIM_ID_2 = 1;
171    public static final int SIM_ID_3 = 2;
172    public static final int SIM_ID_4 = 3;
173
174    // ICC SIM Application Types
175    // TODO: Replace the IccCardApplicationStatus.AppType enums with these constants
176    public static final int APPTYPE_UNKNOWN = 0;
177    public static final int APPTYPE_SIM = 1;
178    public static final int APPTYPE_USIM = 2;
179    public static final int APPTYPE_RUIM = 3;
180    public static final int APPTYPE_CSIM = 4;
181    public static final int APPTYPE_ISIM = 5;
182
183    public enum CardUnavailableReason {
184        REASON_CARD_REMOVED,
185        REASON_RADIO_UNAVAILABLE,
186        REASON_SIM_REFRESH_RESET
187    };
188
189    // Initial MTU value.
190    public static final int UNSET_MTU = 0;
191
192    //FIXME maybe this shouldn't be here - sprout only
193    public static final int CAPABILITY_3G   = 1;
194
195    /**
196     * Values for the adb property "persist.radio.videocall.audio.output"
197     */
198    public static final int AUDIO_OUTPUT_ENABLE_SPEAKER = 0;
199    public static final int AUDIO_OUTPUT_DISABLE_SPEAKER = 1;
200    public static final int AUDIO_OUTPUT_DEFAULT = AUDIO_OUTPUT_ENABLE_SPEAKER;
201}
202