Home | History | Annotate | Download | only in telephony
      1 /*
      2  * Copyright (C) 2012 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 package com.android.internal.telephony;
     17 
     18 /**
     19  * @hide
     20  */
     21 public class PhoneConstants {
     22 
     23     /**
     24      * The phone state. One of the following:<p>
     25      * <ul>
     26      * <li>IDLE = no phone activity</li>
     27      * <li>RINGING = a phone call is ringing or call waiting.
     28      *  In the latter case, another call is active as well</li>
     29      * <li>OFFHOOK = The phone is off hook. At least one call
     30      * exists that is dialing, active or holding and no calls are
     31      * ringing or waiting.</li>
     32      * </ul>
     33      */
     34     public enum State {
     35         IDLE, RINGING, OFFHOOK;
     36     };
     37 
     38     /**
     39       * The state of a data connection.
     40       * <ul>
     41       * <li>CONNECTED = IP traffic should be available</li>
     42       * <li>CONNECTING = Currently setting up data connection</li>
     43       * <li>DISCONNECTED = IP not available</li>
     44       * <li>SUSPENDED = connection is created but IP traffic is
     45       *                 temperately not available. i.e. voice call is in place
     46       *                 in 2G network</li>
     47       * </ul>
     48       */
     49     public enum DataState {
     50         CONNECTED, CONNECTING, DISCONNECTED, SUSPENDED;
     51     };
     52 
     53     public static final String STATE_KEY = "state";
     54 
     55     // Radio Type
     56     public static final int PHONE_TYPE_NONE = RILConstants.NO_PHONE;
     57     public static final int PHONE_TYPE_GSM = RILConstants.GSM_PHONE;
     58     public static final int PHONE_TYPE_CDMA = RILConstants.CDMA_PHONE;
     59     public static final int PHONE_TYPE_SIP = RILConstants.SIP_PHONE;
     60     public static final int PHONE_TYPE_THIRD_PARTY = RILConstants.THIRD_PARTY_PHONE;
     61     public static final int PHONE_TYPE_IMS = RILConstants.IMS_PHONE;
     62     // Currently this is used only to differentiate CDMA and CDMALTE Phone in GsmCdma* files. For
     63     // anything outside of that, a cdma + lte phone is still CDMA_PHONE
     64     public static final int PHONE_TYPE_CDMA_LTE = RILConstants.CDMA_LTE_PHONE;
     65 
     66     // Modes for LTE_ON_CDMA
     67     public static final int LTE_ON_CDMA_UNKNOWN = RILConstants.LTE_ON_CDMA_UNKNOWN;
     68     public static final int LTE_ON_CDMA_FALSE = RILConstants.LTE_ON_CDMA_FALSE;
     69     public static final int LTE_ON_CDMA_TRUE = RILConstants.LTE_ON_CDMA_TRUE;
     70 
     71     // Number presentation type for caller id display (From internal/Connection.java)
     72     public static final int PRESENTATION_ALLOWED = 1;    // normal
     73     public static final int PRESENTATION_RESTRICTED = 2; // block by user
     74     public static final int PRESENTATION_UNKNOWN = 3;    // no specified or unknown by network
     75     public static final int PRESENTATION_PAYPHONE = 4;   // show pay phone info
     76 
     77     // Sim activation type
     78     public static final int SIM_ACTIVATION_TYPE_VOICE = 0;
     79     public static final int SIM_ACTIVATION_TYPE_DATA = 1;
     80 
     81     public static final String PHONE_NAME_KEY = "phoneName";
     82     public static final String FAILURE_REASON_KEY = "reason";
     83     public static final String STATE_CHANGE_REASON_KEY = "reason";
     84     public static final String DATA_NETWORK_TYPE_KEY = "networkType";
     85     public static final String DATA_FAILURE_CAUSE_KEY = "failCause";
     86     public static final String DATA_APN_TYPE_KEY = "apnType";
     87     public static final String DATA_APN_KEY = "apn";
     88     public static final String DATA_LINK_PROPERTIES_KEY = "linkProperties";
     89     public static final String DATA_NETWORK_CAPABILITIES_KEY = "networkCapabilities";
     90 
     91     public static final String DATA_IFACE_NAME_KEY = "iface";
     92     public static final String NETWORK_UNAVAILABLE_KEY = "networkUnvailable";
     93     public static final String DATA_NETWORK_ROAMING_KEY = "networkRoaming";
     94     public static final String PHONE_IN_ECM_STATE = "phoneinECMState";
     95     public static final String PHONE_IN_EMERGENCY_CALL = "phoneInEmergencyCall";
     96 
     97     public static final String REASON_LINK_PROPERTIES_CHANGED = "linkPropertiesChanged";
     98 
     99     /**
    100      * Return codes for supplyPinReturnResult and
    101      * supplyPukReturnResult APIs
    102      */
    103     public static final int PIN_RESULT_SUCCESS = 0;
    104     public static final int PIN_PASSWORD_INCORRECT = 1;
    105     public static final int PIN_GENERAL_FAILURE = 2;
    106 
    107     /**
    108      * Return codes for <code>enableApnType()</code>
    109      */
    110     public static final int APN_ALREADY_ACTIVE     = 0;
    111     public static final int APN_REQUEST_STARTED    = 1;
    112     public static final int APN_TYPE_NOT_AVAILABLE = 2;
    113     public static final int APN_REQUEST_FAILED     = 3;
    114     public static final int APN_ALREADY_INACTIVE   = 4;
    115 
    116     /**
    117      * APN types for data connections.  These are usage categories for an APN
    118      * entry.  One APN entry may support multiple APN types, eg, a single APN
    119      * may service regular internet traffic ("default") as well as MMS-specific
    120      * connections.<br/>
    121      * APN_TYPE_ALL is a special type to indicate that this APN entry can
    122      * service all data connections.
    123      */
    124     public static final String APN_TYPE_ALL = "*";
    125     /** APN type for default data traffic */
    126     public static final String APN_TYPE_DEFAULT = "default";
    127     /** APN type for MMS traffic */
    128     public static final String APN_TYPE_MMS = "mms";
    129     /** APN type for SUPL assisted GPS */
    130     public static final String APN_TYPE_SUPL = "supl";
    131     /** APN type for DUN traffic */
    132     public static final String APN_TYPE_DUN = "dun";
    133     /** APN type for HiPri traffic */
    134     public static final String APN_TYPE_HIPRI = "hipri";
    135     /** APN type for FOTA */
    136     public static final String APN_TYPE_FOTA = "fota";
    137     /** APN type for IMS */
    138     public static final String APN_TYPE_IMS = "ims";
    139     /** APN type for CBS */
    140     public static final String APN_TYPE_CBS = "cbs";
    141     /** APN type for IA Initial Attach APN */
    142     public static final String APN_TYPE_IA = "ia";
    143     /** APN type for Emergency PDN. This is not an IA apn, but is used
    144      * for access to carrier services in an emergency call situation. */
    145     public static final String APN_TYPE_EMERGENCY = "emergency";
    146     /** Array of all APN types */
    147     public static final String[] APN_TYPES = {APN_TYPE_DEFAULT,
    148             APN_TYPE_MMS,
    149             APN_TYPE_SUPL,
    150             APN_TYPE_DUN,
    151             APN_TYPE_HIPRI,
    152             APN_TYPE_FOTA,
    153             APN_TYPE_IMS,
    154             APN_TYPE_CBS,
    155             APN_TYPE_IA,
    156             APN_TYPE_EMERGENCY
    157     };
    158 
    159     public static final int RIL_CARD_MAX_APPS    = 8;
    160 
    161     public static final int DEFAULT_CARD_INDEX   = 0;
    162 
    163     public static final int MAX_PHONE_COUNT_SINGLE_SIM = 1;
    164 
    165     public static final int MAX_PHONE_COUNT_DUAL_SIM = 2;
    166 
    167     public static final int MAX_PHONE_COUNT_TRI_SIM = 3;
    168 
    169     public static final String PHONE_KEY = "phone";
    170 
    171     public static final String SLOT_KEY  = "slot";
    172 
    173     /** Fired when a subscriptions phone state changes. */
    174     public static final String ACTION_SUBSCRIPTION_PHONE_STATE_CHANGED =
    175         "android.intent.action.SUBSCRIPTION_PHONE_STATE";
    176 
    177     // FIXME: This is used to pass a subId via intents, we need to look at its usage, which is
    178     // FIXME: extensive, and see if this should be an array of all active subId's or ...?
    179     public static final String SUBSCRIPTION_KEY  = "subscription";
    180 
    181     public static final String SUB_SETTING  = "subSettings";
    182 
    183     public static final int SUB1 = 0;
    184     public static final int SUB2 = 1;
    185     public static final int SUB3 = 2;
    186 
    187     // TODO: Remove these constants and use an int instead.
    188     public static final int SIM_ID_1 = 0;
    189     public static final int SIM_ID_2 = 1;
    190     public static final int SIM_ID_3 = 2;
    191     public static final int SIM_ID_4 = 3;
    192 
    193     // ICC SIM Application Types
    194     // TODO: Replace the IccCardApplicationStatus.AppType enums with these constants
    195     public static final int APPTYPE_UNKNOWN = 0;
    196     public static final int APPTYPE_SIM = 1;
    197     public static final int APPTYPE_USIM = 2;
    198     public static final int APPTYPE_RUIM = 3;
    199     public static final int APPTYPE_CSIM = 4;
    200     public static final int APPTYPE_ISIM = 5;
    201 
    202     public enum CardUnavailableReason {
    203         REASON_CARD_REMOVED,
    204         REASON_RADIO_UNAVAILABLE,
    205         REASON_SIM_REFRESH_RESET
    206     };
    207 
    208     // Initial MTU value.
    209     public static final int UNSET_MTU = 0;
    210 
    211     //FIXME maybe this shouldn't be here - sprout only
    212     public static final int CAPABILITY_3G   = 1;
    213 
    214     /**
    215      * Values for the adb property "persist.radio.videocall.audio.output"
    216      */
    217     public static final int AUDIO_OUTPUT_ENABLE_SPEAKER = 0;
    218     public static final int AUDIO_OUTPUT_DISABLE_SPEAKER = 1;
    219     public static final int AUDIO_OUTPUT_DEFAULT = AUDIO_OUTPUT_ENABLE_SPEAKER;
    220 
    221     // authContext (parameter P2) when doing SIM challenge,
    222     // per 3GPP TS 31.102 (Section 7.1.2)
    223     public static final int AUTH_CONTEXT_EAP_SIM = 128;
    224     public static final int AUTH_CONTEXT_EAP_AKA = 129;
    225     public static final int AUTH_CONTEXT_UNDEFINED = -1;
    226 
    227     /**
    228      * Value for the global property CELL_ON
    229      *  0: Cell radio is off
    230      *  1: Cell radio is on
    231      *  2: Cell radio is off because airplane mode is enabled
    232      */
    233     public static final int CELL_OFF_FLAG = 0;
    234     public static final int CELL_ON_FLAG = 1;
    235     public static final int CELL_OFF_DUE_TO_AIRPLANE_MODE_FLAG = 2;
    236 }
    237