|
Android example source code file (Phone.java)
The Phone.java Android example source code/* * Copyright (C) 2007 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.internal.telephony; import android.content.Context; import android.content.SharedPreferences; import android.os.Handler; import android.os.Message; import android.preference.PreferenceManager; import android.telephony.CellLocation; import android.telephony.PhoneStateListener; import android.telephony.ServiceState; import android.telephony.SignalStrength; import com.android.internal.telephony.DataConnection; import com.android.internal.telephony.gsm.NetworkInfo; import com.android.internal.telephony.gsm.GsmDataConnection; import com.android.internal.telephony.test.SimulatedRadioControl; import java.util.List; /** * Internal interface used to control the phone; SDK developers cannot * obtain this interface. * * {@hide} * */ public interface Phone { /** used to enable additional debug messages */ static final boolean DEBUG_PHONE = true; /** * The phone state. One of the following:<p> * <ul> * <li>IDLE = no phone activity * <li>RINGING = a phone call is ringing or call waiting. * In the latter case, another call is active as well</li> * <li>OFFHOOK = The phone is off hook. At least one call * exists that is dialing, active or holding and no calls are * ringing or waiting.</li> * </ul> */ enum State { IDLE, RINGING, OFFHOOK; }; /** * The state of a data connection. * <ul> * <li>CONNECTED = IP traffic should be available * <li>CONNECTING = Currently setting up data connection * <li>DISCONNECTED = IP not available * <li>SUSPENDED = connection is created but IP traffic is * temperately not available. i.e. voice call is in place * in 2G network</li> * </ul> */ enum DataState { CONNECTED, CONNECTING, DISCONNECTED, SUSPENDED; }; public enum DataActivityState { /** * The state of a data activity. * <ul> * <li>NONE = No traffic * <li>DATAIN = Receiving IP ppp traffic * <li>DATAOUT = Sending IP ppp traffic * <li>DATAINANDOUT = Both receiving and sending IP ppp traffic * <li>DORMANT = The data connection is still active, but physical link is down</li> * </ul> */ NONE, DATAIN, DATAOUT, DATAINANDOUT, DORMANT; }; enum SuppService { UNKNOWN, SWITCH, SEPARATE, TRANSFER, CONFERENCE, REJECT, HANGUP; }; static final String STATE_KEY = "state"; static final String PHONE_NAME_KEY = "phoneName"; static final String FAILURE_REASON_KEY = "reason"; static final String STATE_CHANGE_REASON_KEY = "reason"; static final String DATA_APN_TYPES_KEY = "apnType"; static final String DATA_APN_KEY = "apn"; static final String DATA_IFACE_NAME_KEY = "iface"; static final String NETWORK_UNAVAILABLE_KEY = "networkUnvailable"; static final String PHONE_IN_ECM_STATE = "phoneinECMState"; /** * APN types for data connections. These are usage categories for an APN * entry. One APN entry may support multiple APN types, eg, a single APN * may service regular internet traffic ("default") as well as MMS-specific * connections.<br/> * APN_TYPE_ALL is a special type to indicate that this APN entry can * service all data connections. */ static final String APN_TYPE_ALL = "*"; /** APN type for default data traffic */ static final String APN_TYPE_DEFAULT = "default"; /** APN type for MMS traffic */ static final String APN_TYPE_MMS = "mms"; /** APN type for SUPL assisted GPS */ static final String APN_TYPE_SUPL = "supl"; /** APN type for DUN traffic */ static final String APN_TYPE_DUN = "dun"; /** APN type for HiPri traffic */ static final String APN_TYPE_HIPRI = "hipri"; // "Features" accessible through the connectivity manager static final String FEATURE_ENABLE_MMS = "enableMMS"; static final String FEATURE_ENABLE_SUPL = "enableSUPL"; static final String FEATURE_ENABLE_DUN = "enableDUN"; static final String FEATURE_ENABLE_HIPRI = "enableHIPRI"; /** * Return codes for <code>enableApnType() */ static final int APN_ALREADY_ACTIVE = 0; static final int APN_REQUEST_STARTED = 1; static final int APN_TYPE_NOT_AVAILABLE = 2; static final int APN_REQUEST_FAILED = 3; /** * Optional reasons for disconnect and connect */ static final String REASON_ROAMING_ON = "roamingOn"; static final String REASON_ROAMING_OFF = "roamingOff"; static final String REASON_DATA_DISABLED = "dataDisabled"; static final String REASON_DATA_ENABLED = "dataEnabled"; static final String REASON_GPRS_ATTACHED = "gprsAttached"; static final String REASON_GPRS_DETACHED = "gprsDetached"; static final String REASON_CDMA_DATA_ATTACHED = "cdmaDataAttached"; static final String REASON_CDMA_DATA_DETACHED = "cdmaDataDetached"; static final String REASON_APN_CHANGED = "apnChanged"; static final String REASON_APN_SWITCHED = "apnSwitched"; static final String REASON_APN_FAILED = "apnFailed"; static final String REASON_RESTORE_DEFAULT_APN = "restoreDefaultApn"; static final String REASON_RADIO_TURNED_OFF = "radioTurnedOff"; static final String REASON_PDP_RESET = "pdpReset"; static final String REASON_VOICE_CALL_ENDED = "2GVoiceCallEnded"; static final String REASON_VOICE_CALL_STARTED = "2GVoiceCallStarted"; static final String REASON_PS_RESTRICT_ENABLED = "psRestrictEnabled"; static final String REASON_PS_RESTRICT_DISABLED = "psRestrictDisabled"; static final String REASON_SIM_LOADED = "simLoaded"; // Used for band mode selection methods static final int BM_UNSPECIFIED = 0; // selected by baseband automatically static final int BM_EURO_BAND = 1; // GSM-900 / DCS-1800 / WCDMA-IMT-2000 static final int BM_US_BAND = 2; // GSM-850 / PCS-1900 / WCDMA-850 / WCDMA-PCS-1900 static final int BM_JPN_BAND = 3; // WCDMA-800 / WCDMA-IMT-2000 static final int BM_AUS_BAND = 4; // GSM-900 / DCS-1800 / WCDMA-850 / WCDMA-IMT-2000 static final int BM_AUS2_BAND = 5; // GSM-900 / DCS-1800 / WCDMA-850 static final int BM_BOUNDARY = 6; // upper band boundary // Radio Type static final int PHONE_TYPE_NONE = RILConstants.NO_PHONE; static final int PHONE_TYPE_GSM = RILConstants.GSM_PHONE; static final int PHONE_TYPE_CDMA = RILConstants.CDMA_PHONE; // Used for preferred network type // Note NT_* substitute RILConstants.NETWORK_MODE_* above the Phone int NT_MODE_WCDMA_PREF = RILConstants.NETWORK_MODE_WCDMA_PREF; int NT_MODE_GSM_ONLY = RILConstants.NETWORK_MODE_GSM_ONLY; int NT_MODE_WCDMA_ONLY = RILConstants.NETWORK_MODE_WCDMA_ONLY; int NT_MODE_GSM_UMTS = RILConstants.NETWORK_MODE_GSM_UMTS; int NT_MODE_CDMA = RILConstants.NETWORK_MODE_CDMA; int NT_MODE_CDMA_NO_EVDO = RILConstants.NETWORK_MODE_CDMA_NO_EVDO; int NT_MODE_EVDO_NO_CDMA = RILConstants.NETWORK_MODE_EVDO_NO_CDMA; int NT_MODE_GLOBAL = RILConstants.NETWORK_MODE_GLOBAL; int PREFERRED_NT_MODE = RILConstants.PREFERRED_NETWORK_MODE; // Used for CDMA roaming mode static final int CDMA_RM_HOME = 0; // Home Networks only, as defined in PRL static final int CDMA_RM_AFFILIATED = 1; // Roaming an Affiliated networks, as defined in PRL static final int CDMA_RM_ANY = 2; // Roaming on Any Network, as defined in PRL // Used for CDMA subscription mode static final int CDMA_SUBSCRIPTION_RUIM_SIM = 0; // RUIM/SIM (default) static final int CDMA_SUBSCRIPTION_NV = 1; // NV -> non-volatile memory static final int PREFERRED_CDMA_SUBSCRIPTION = CDMA_SUBSCRIPTION_NV; static final int TTY_MODE_OFF = 0; static final int TTY_MODE_FULL = 1; static final int TTY_MODE_HCO = 2; static final int TTY_MODE_VCO = 3; /** * CDMA OTA PROVISION STATUS, the same as RIL_CDMA_OTA_Status in ril.h */ public static final int CDMA_OTA_PROVISION_STATUS_SPL_UNLOCKED = 0; public static final int CDMA_OTA_PROVISION_STATUS_SPC_RETRIES_EXCEEDED = 1; public static final int CDMA_OTA_PROVISION_STATUS_A_KEY_EXCHANGED = 2; public static final int CDMA_OTA_PROVISION_STATUS_SSD_UPDATED = 3; public static final int CDMA_OTA_PROVISION_STATUS_NAM_DOWNLOADED = 4; public static final int CDMA_OTA_PROVISION_STATUS_MDN_DOWNLOADED = 5; public static final int CDMA_OTA_PROVISION_STATUS_IMSI_DOWNLOADED = 6; public static final int CDMA_OTA_PROVISION_STATUS_PRL_DOWNLOADED = 7; public static final int CDMA_OTA_PROVISION_STATUS_COMMITTED = 8; public static final int CDMA_OTA_PROVISION_STATUS_OTAPA_STARTED = 9; public static final int CDMA_OTA_PROVISION_STATUS_OTAPA_STOPPED = 10; public static final int CDMA_OTA_PROVISION_STATUS_OTAPA_ABORTED = 11; /** * Get the current ServiceState. Use * <code>registerForServiceStateChanged to be informed of * updates. */ ServiceState getServiceState(); /** * Get the current CellLocation. */ CellLocation getCellLocation(); /** * Get the current DataState. No change notification exists at this * interface -- use * {@link android.telephony.PhoneStateListener} instead. */ DataState getDataConnectionState(); /** * Get the current DataActivityState. No change notification exists at this * interface -- use * {@link android.telephony.TelephonyManager} instead. */ DataActivityState getDataActivityState(); /** * Gets the context for the phone, as set at initialization time. */ Context getContext(); /** * Disables the DNS check (i.e., allows "0.0.0.0"). * Useful for lab testing environment. * @param b true disables the check, false enables. */ void disableDnsCheck(boolean b); /** * Returns true if the DNS check is currently disabled. */ boolean isDnsCheckDisabled(); /** * Get current coarse-grained voice call state. * Use {@link #registerForPreciseCallStateChanged(Handler, int, Object) * registerForPreciseCallStateChanged()} for change notification. <p> * If the phone has an active call and call waiting occurs, * then the phone state is RINGING not OFFHOOK * <strong>Note: * This registration point provides notification of finer-grained * changes.<p> * */ State getState(); /** * Returns a string identifier for this phone interface for parties * outside the phone app process. * @return The string name. */ String getPhoneName(); /** * Return a numerical identifier for the phone radio interface. * @return PHONE_TYPE_XXX as defined above. */ int getPhoneType(); /** * Returns an array of string identifiers for the APN types serviced by the * currently active or last connected APN. * @return The string array. */ String[] getActiveApnTypes(); /** * Returns a string identifier for currently active or last connected APN. * @return The string name. */ String getActiveApn(); /** * Get current signal strength. No change notification available on this * interface. Use <code>PhoneStateNotifier or an equivalent. * An ASU is 0-31 or -1 if unknown (for GSM, dBm = -113 - 2 * asu). * The following special values are defined:</p> * <ul> response.obj.result will be a List of
* <code>com.android.internal.telephony.gsm.NetworkInfo objects, or
* <li>response.obj.exception will be set with an exception
* on failure.</li>
* </ul>
*/
void getAvailableNetworks(Message response);
/**
* Switches network selection mode to "automatic", re-scanning and
* re-selecting a network if appropriate.
*
* @param response The message to dispatch when the network selection
* is complete.
*
* @see #selectNetworkManually(com.android.internal.telephony.gsm.NetworkInfo,
* android.os.Message )
*/
void setNetworkSelectionModeAutomatic(Message response);
/**
* Manually selects a network. <code>response is
* dispatched when this is complete. <code>response.obj will be
* an AsyncResult, and <code>response.obj.exception will be non-null
* on failure.
*
* @see #setNetworkSelectionModeAutomatic(Message)
*/
void selectNetworkManually(NetworkInfo network,
Message response);
/**
* Requests to set the preferred network type for searching and registering
* (CS/PS domain, RAT, and operation mode)
* @param networkType one of NT_*_TYPE
* @param response is callback message
*/
void setPreferredNetworkType(int networkType, Message response);
/**
* Query the preferred network type setting
*
* @param response is callback message to report one of NT_*_TYPE
*/
void getPreferredNetworkType(Message response);
/**
* Gets the default SMSC address.
*
* @param result Callback message contains the SMSC address.
*/
void getSmscAddress(Message result);
/**
* Sets the default SMSC address.
*
* @param address new SMSC address
* @param result Callback message is empty on completion
*/
void setSmscAddress(String address, Message result);
/**
* Query neighboring cell IDs. <code>response is dispatched when
* this is complete. <code>response.obj will be an AsyncResult,
* and <code>response.obj.exception will be non-null on failure.
* On success, <code>AsyncResult.result will be a String[]
* containing the neighboring cell IDs. Index 0 will contain the count
* of available cell IDs. Cell IDs are in hexadecimal format.
*
* @param response callback message that is dispatched when the query
* completes.
*/
void getNeighboringCids(Message response);
/**
* Sets an event to be fired when the telephony system processes
* a post-dial character on an outgoing call.<p>
*
* Messages of type <code>what will be sent to h .
* The <code>obj field of these Message's will be instances of
* <code>AsyncResult. Message.obj.result will be
* a Connection object.<p>
*
* Message.arg1 will be the post dial character being processed,
* or 0 ('\0') if end of string.<p>
*
* If Connection.getPostDialState() == WAIT,
* the application must call
* {@link com.android.internal.telephony.Connection#proceedAfterWaitChar()
* Connection.proceedAfterWaitChar()} or
* {@link com.android.internal.telephony.Connection#cancelPostDial()
* Connection.cancelPostDial()}
* for the telephony system to continue playing the post-dial
* DTMF sequence.<p>
*
* If Connection.getPostDialState() == WILD,
* the application must call
* {@link com.android.internal.telephony.Connection#proceedAfterWildChar
* Connection.proceedAfterWildChar()}
* or
* {@link com.android.internal.telephony.Connection#cancelPostDial()
* Connection.cancelPostDial()}
* for the telephony system to continue playing the
* post-dial DTMF sequence.<p>
*
* Only one post dial character handler may be set. <p>
* Calling this method with "h" equal to null unsets this handler.<p>
*/
void setOnPostDialCharacter(Handler h, int what, Object obj);
/**
* Mutes or unmutes the microphone for the active call. The microphone
* is automatically unmuted if a call is answered, dialed, or resumed
* from a holding state.
*
* @param muted true to mute the microphone,
* false to activate the microphone.
*/
void setMute(boolean muted);
/**
* Gets current mute status. Use
* {@link #registerForPreciseCallStateChanged(android.os.Handler, int,
* java.lang.Object) registerForPreciseCallStateChanged()}
* as a change notifcation, although presently phone state changed is not
* fired when setMute() is called.
*
* @return true is muting, false is unmuting
*/
boolean getMute();
/**
* Invokes RIL_REQUEST_OEM_HOOK_RAW on RIL implementation.
*
* @param data The data for the request.
* @param response <strong>On success,
* (byte[])(((AsyncResult)response.obj).result)
* <strong>On failure,
* (((AsyncResult)response.obj).result) == null and
* (((AsyncResult)response.obj).exception) being an instance of
* com.android.internal.telephony.gsm.CommandException
*
* @see #invokeOemRilRequestRaw(byte[], android.os.Message)
*/
void invokeOemRilRequestRaw(byte[] data, Message response);
/**
* Invokes RIL_REQUEST_OEM_HOOK_Strings on RIL implementation.
*
* @param strings The strings to make available as the request data.
* @param response <strong>On success, "response" bytes is
* made available as:
* (String[])(((AsyncResult)response.obj).result).
* <strong>On failure,
* (((AsyncResult)response.obj).result) == null and
* (((AsyncResult)response.obj).exception) being an instance of
* com.android.internal.telephony.gsm.CommandException
*
* @see #invokeOemRilRequestStrings(java.lang.String[], android.os.Message)
*/
void invokeOemRilRequestStrings(String[] strings, Message response);
/**
* Get the current active Data Call list
*
* @param response <strong>On success, "response" bytes is
* made available as:
* (String[])(((AsyncResult)response.obj).result).
* <strong>On failure,
* (((AsyncResult)response.obj).result) == null and
* (((AsyncResult)response.obj).exception) being an instance of
* com.android.internal.telephony.gsm.CommandException
*/
void getDataCallList(Message response);
/**
* Get current mutiple data connection status
*
* @return list of data connections
*/
List<DataConnection> getCurrentDataConnectionList();
/**
* Update the ServiceState CellLocation for current network registration.
*/
void updateServiceLocation();
/**
* Enable location update notifications.
*/
void enableLocationUpdates();
/**
* Disable location update notifications.
*/
void disableLocationUpdates();
/**
* For unit tests; don't send notifications to "Phone"
* mailbox registrants if true.
*/
void setUnitTestMode(boolean f);
/**
* @return true If unit test mode is enabled
*/
boolean getUnitTestMode();
/**
* Assign a specified band for RF configuration.
*
* @param bandMode one of BM_*_BAND
* @param response is callback message
*/
void setBandMode(int bandMode, Message response);
/**
* Query the list of band mode supported by RF.
*
* @param response is callback message
* ((AsyncResult)response.obj).result is an int[] with every
* element representing one avialable BM_*_BAND
*/
void queryAvailableBandMode(Message response);
/**
* @return true if enable data connection on roaming
*/
boolean getDataRoamingEnabled();
/**
* @param enable set true if enable data connection on roaming
*/
void setDataRoamingEnabled(boolean enable);
/**
* Query the CDMA roaming preference setting
*
* @param response is callback message to report one of CDMA_RM_*
*/
void queryCdmaRoamingPreference(Message response);
/**
* Requests to set the CDMA roaming preference
* @param cdmaRoamingType one of CDMA_RM_*
* @param response is callback message
*/
void setCdmaRoamingPreference(int cdmaRoamingType, Message response);
/**
* Requests to set the CDMA subscription mode
* @param cdmaSubscriptionType one of CDMA_SUBSCRIPTION_*
* @param response is callback message
*/
void setCdmaSubscription(int cdmaSubscriptionType, Message response);
/**
* If this is a simulated phone interface, returns a SimulatedRadioControl.
* @ return A SimulatedRadioControl if this is a simulated interface;
* otherwise, null.
*/
SimulatedRadioControl getSimulatedRadioControl();
/**
* Allow mobile data connections.
* @return {@code true} if the operation started successfully
* <br/>{@code false} if it
* failed immediately.<br/>
* Even in the {@code true} case, it may still fail later
* during setup, in which case an asynchronous indication will
* be supplied.
*/
boolean enableDataConnectivity();
/**
* Disallow mobile data connections, and terminate any that
* are in progress.
* @return {@code true} if the operation started successfully
* <br/>{@code false} if it
* failed immediately.<br/>
* Even in the {@code true} case, it may still fail later
* during setup, in which case an asynchronous indication will
* be supplied.
*/
boolean disableDataConnectivity();
/**
* Report the current state of data connectivity (enabled or disabled)
* @return {@code false} if data connectivity has been explicitly disabled,
* {@code true} otherwise.
*/
boolean isDataConnectivityEnabled();
/**
* Enables the specified APN type. Only works for "special" APN types,
* i.e., not the default APN.
* @param type The desired APN type. Cannot be {@link #APN_TYPE_DEFAULT}.
* @return <code>APN_ALREADY_ACTIVE if the current APN
* services the requested type.<br/>
* <code>APN_TYPE_NOT_AVAILABLE if the carrier does not
* support the requested APN.<br/>
* <code>APN_REQUEST_STARTED if the request has been initiated.* <code>APN_REQUEST_FAILED if the request was invalid. * A <code>ACTION_ANY_DATA_CONNECTION_STATE_CHANGED broadcast will * indicate connection state progress. */ int enableApnType(String type); /** * Disables the specified APN type, and switches back to the default APN, * if necessary. Switching to the default APN will not happen if default * data traffic has been explicitly disabled via a call to {@link #disableDataConnectivity}. * <p/>Only works for "special" APN types, * i.e., not the default APN. * @param type The desired APN type. Cannot be {@link #APN_TYPE_DEFAULT}. * @return <code>APN_ALREADY_ACTIVE if the default APN * is already active.<br/> * <code>APN_REQUEST_STARTED if the request to switch to the default * APN has been initiated.<br/> * <code>APN_REQUEST_FAILED if the request was invalid. * A <code>ACTION_ANY_DATA_CONNECTION_STATE_CHANGED broadcast will * indicate connection state progress. */ int disableApnType(String type); /** * Report on whether data connectivity is allowed. */ boolean isDataConnectivityPossible(); /** * Returns the name of the network interface used by the specified APN type. */ String getInterfaceName(String apnType); /** * Returns the IP address of the network interface used by the specified * APN type. */ String getIpAddress(String apnType); /** * Returns the gateway for the network interface used by the specified APN * type. */ String getGateway(String apnType); /** * Returns the DNS servers for the network interface used by the specified * APN type. */ public String[] getDnsServers(String apnType); /** * Retrieves the unique device ID, e.g., IMEI for GSM phones and MEID for CDMA phones. */ String getDeviceId(); /** * Retrieves the software version number for the device, e.g., IMEI/SV * for GSM phones. */ String getDeviceSvn(); /** * Retrieves the unique sbuscriber ID, e.g., IMSI for GSM phones. */ String getSubscriberId(); /** * Retrieves the serial number of the ICC, if applicable. */ String getIccSerialNumber(); /* CDMA support methods */ /** * Retrieves the MIN for CDMA phones. */ String getCdmaMin(); /** * Check if subscription data has been assigned to mMin * * return true if MIN info is ready; false otherwise. */ boolean isMinInfoReady(); /** * Retrieves PRL Version for CDMA phones */ String getCdmaPrlVersion(); /** * Retrieves the ESN for CDMA phones. */ String getEsn(); /** * Retrieves MEID for CDMA phones. */ String getMeid(); /** * Retrieves the PhoneSubInfo of the Phone */ public PhoneSubInfo getPhoneSubInfo(); /** * Retrieves the IccSmsInterfaceManager of the Phone */ public IccSmsInterfaceManager getIccSmsInterfaceManager(); /** * Retrieves the IccPhoneBookInterfaceManager of the Phone */ public IccPhoneBookInterfaceManager getIccPhoneBookInterfaceManager(); /** * setTTYMode * sets a TTY mode option. * * @param ttyMode is a boolean representing the state that you are * requesting, true for enabled, false for disabled. * @param onComplete a callback message when the action is completed */ void setTTYMode(int ttyMode, Message onComplete); /** * queryTTYMode * query the status of the TTY mode * * @param onComplete a callback message when the action is completed. */ void queryTTYMode(Message onComplete); /** * Activate or deactivate cell broadcast SMS. * * @param activate * 0 = activate, 1 = deactivate * @param response * Callback message is empty on completion */ void activateCellBroadcastSms(int activate, Message response); /** * Query the current configuration of cdma cell broadcast SMS. * * @param response * Callback message is empty on completion */ void getCellBroadcastSmsConfig(Message response); /** * Configure cell broadcast SMS. * * TODO: Change the configValuesArray to a RIL_BroadcastSMSConfig * * @param response * Callback message is empty on completion */ public void setCellBroadcastSmsConfig(int[] configValuesArray, Message response); public void notifyDataActivity(); /** * Returns the CDMA ERI icon index to display */ public int getCdmaEriIconIndex(); /** * Returns the CDMA ERI icon mode, * 0 - ON * 1 - FLASHING */ public int getCdmaEriIconMode(); /** * Returns the CDMA ERI text, */ public String getCdmaEriText(); /** * request to exit emergency call back mode * the caller should use setOnECMModeExitResponse * to receive the emergency callback mode exit response */ void exitEmergencyCallbackMode(); /** * this decides if the dial number is OTA(Over the air provision) number or not * @param dialStr is string representing the dialing digit(s) * @return true means the dialStr is OTA number, and false means the dialStr is not OTA number */ boolean isOtaSpNumber(String dialStr); /** * Register for notifications when CDMA call waiting comes * * @param h Handler that receives the notification message. * @param what User-defined message code. * @param obj User object. */ void registerForCallWaiting(Handler h, int what, Object obj); /** * Unegister for notifications when CDMA Call waiting comes * @param h Handler to be removed from the registrant list. */ void unregisterForCallWaiting(Handler h); /** * Register for signal information notifications from the network. * Message.obj will contain an AsyncResult. * AsyncResult.result will be a SuppServiceNotification instance. * * @param h Handler that receives the notification message. * @param what User-defined message code. * @param obj User object. */ void registerForSignalInfo(Handler h, int what, Object obj) ; /** * Unregisters for signal information notifications. * Extraneous calls are tolerated silently * * @param h Handler to be removed from the registrant list. */ void unregisterForSignalInfo(Handler h); /** * Register for display information notifications from the network. * Message.obj will contain an AsyncResult. * AsyncResult.result will be a SuppServiceNotification instance. * * @param h Handler that receives the notification message. * @param what User-defined message code. * @param obj User object. */ void registerForDisplayInfo(Handler h, int what, Object obj); /** * Unregisters for display information notifications. * Extraneous calls are tolerated silently * * @param h Handler to be removed from the registrant list. */ void unregisterForDisplayInfo(Handler h) ; /** * Register for CDMA number information record notification from the network. * Message.obj will contain an AsyncResult. * AsyncResult.result will be a CdmaInformationRecords.CdmaNumberInfoRec * instance. * * @param h Handler that receives the notification message. * @param what User-defined message code. * @param obj User object. */ void registerForNumberInfo(Handler h, int what, Object obj); /** * Unregisters for number information record notifications. * Extraneous calls are tolerated silently * * @param h Handler to be removed from the registrant list. */ void unregisterForNumberInfo(Handler h); /** * Register for CDMA redirected number information record notification * from the network. * Message.obj will contain an AsyncResult. * AsyncResult.result will be a CdmaInformationRecords.CdmaRedirectingNumberInfoRec * instance. * * @param h Handler that receives the notification message. * @param what User-defined message code. * @param obj User object. */ void registerForRedirectedNumberInfo(Handler h, int what, Object obj); /** * Unregisters for redirected number information record notification. * Extraneous calls are tolerated silently * * @param h Handler to be removed from the registrant list. */ void unregisterForRedirectedNumberInfo(Handler h); /** * Register for CDMA line control information record notification * from the network. * Message.obj will contain an AsyncResult. * AsyncResult.result will be a CdmaInformationRecords.CdmaLineControlInfoRec * instance. * * @param h Handler that receives the notification message. * @param what User-defined message code. * @param obj User object. */ void registerForLineControlInfo(Handler h, int what, Object obj); /** * Unregisters for line control information notifications. * Extraneous calls are tolerated silently * * @param h Handler to be removed from the registrant list. */ void unregisterForLineControlInfo(Handler h); /** * Register for CDMA T53 CLIR information record notifications * from the network. * Message.obj will contain an AsyncResult. * AsyncResult.result will be a CdmaInformationRecords.CdmaT53ClirInfoRec * instance. * * @param h Handler that receives the notification message. * @param what User-defined message code. * @param obj User object. */ void registerFoT53ClirlInfo(Handler h, int what, Object obj); /** * Unregisters for T53 CLIR information record notification * Extraneous calls are tolerated silently * * @param h Handler to be removed from the registrant list. */ void unregisterForT53ClirInfo(Handler h); /** * Register for CDMA T53 audio control information record notifications * from the network. * Message.obj will contain an AsyncResult. * AsyncResult.result will be a CdmaInformationRecords.CdmaT53AudioControlInfoRec * instance. * * @param h Handler that receives the notification message. * @param what User-defined message code. * @param obj User object. */ void registerForT53AudioControlInfo(Handler h, int what, Object obj); /** * Unregisters for T53 audio control information record notifications. * Extraneous calls are tolerated silently * * @param h Handler to be removed from the registrant list. */ void unregisterForT53AudioControlInfo(Handler h); /** * registers for exit emergency call back mode request response * * @param h Handler that receives the notification message. * @param what User-defined message code. * @param obj User object. */ void setOnEcbModeExitResponse(Handler h, int what, Object obj); /** * Unregisters for exit emergency call back mode request response * * @param h Handler to be removed from the registrant list. */ void unsetOnEcbModeExitResponse(Handler h); /** * TODO: Adding a function for each property is not good. * A fucntion of type getPhoneProp(propType) where propType is an * enum of GSM+CDMA+LTE props would be a better approach. * * Get "Restriction of menu options for manual PLMN selection" bit * status from EF_CSP data, this belongs to "Value Added Services Group". * @return true if this bit is set or EF_CSP data is unavailable, * false otherwise */ boolean isCspPlmnEnabled(); } Other Android examples (source code examples)Here is a short list of links related to this Android Phone.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.