public
abstract
class
Connection
extends Conferenceable
java.lang.Object | ||
↳ | android.telecom.Conferenceable | |
↳ | android.telecom.Connection |
Represents a phone call or connection to a remote endpoint that carries voice and/or video traffic.
Implementations create a custom subclass of Connection
and return it to the framework
as the return value of
onCreateIncomingConnection(PhoneAccountHandle, ConnectionRequest)
or
onCreateOutgoingConnection(PhoneAccountHandle, ConnectionRequest)
.
Implementations are then responsible for updating the state of the Connection
, and
must call destroy()
to signal to the framework that the Connection
is no
longer used and associated resources may be recovered.
Nested classes | |
---|---|
class |
Connection.VideoProvider
Provides a means of controlling the video session associated with a |
Constants | |
---|---|
int |
CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO
When set, prevents a video call from being downgraded to an audio-only call. |
int |
CAPABILITY_CAN_PAUSE_VIDEO
For video calls, indicates whether the outgoing video for the call can be paused using
the |
int |
CAPABILITY_CAN_SEND_RESPONSE_VIA_CONNECTION
Indicates that the connection itself wants to handle any sort of reply response, rather than relying on SMS. |
int |
CAPABILITY_CAN_UPGRADE_TO_VIDEO
Call can be upgraded to a video call. |
int |
CAPABILITY_DISCONNECT_FROM_CONFERENCE
Connection is able to be individually disconnected when in a |
int |
CAPABILITY_HOLD
Connection can currently be put on hold or unheld. |
int |
CAPABILITY_MANAGE_CONFERENCE
Connection supports conference management. |
int |
CAPABILITY_MERGE_CONFERENCE
Connections within a conference can be merged. |
int |
CAPABILITY_MUTE
Connection can be muted. |
int |
CAPABILITY_RESPOND_VIA_TEXT
Connection supports responding via text option. |
int |
CAPABILITY_SEPARATE_FROM_CONFERENCE
Connection is able to be separated from its parent |
int |
CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL
Local device supports bidirectional video calling. |
int |
CAPABILITY_SUPPORTS_VT_LOCAL_RX
Local device supports receiving video. |
int |
CAPABILITY_SUPPORTS_VT_LOCAL_TX
Local device supports transmitting video. |
int |
CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL
Remote device supports bidirectional video calling. |
int |
CAPABILITY_SUPPORTS_VT_REMOTE_RX
Remote device supports receiving video. |
int |
CAPABILITY_SUPPORTS_VT_REMOTE_TX
Remote device supports transmitting video. |
int |
CAPABILITY_SUPPORT_HOLD
Connection supports the hold feature. |
int |
CAPABILITY_SWAP_CONFERENCE
Connections within a conference can be swapped between foreground and background. |
String |
EXTRA_CALL_SUBJECT
Connection extra key used to store the subject for an incoming call. |
String |
EXTRA_CHILD_ADDRESS
Connection extra key used to store a child number associated with the current connection. |
String |
EXTRA_LAST_FORWARDED_NUMBER
Connection extra key used to store the last forwarded number associated with the current connection. |
int |
STATE_ACTIVE
A connection is active. |
int |
STATE_DIALING
An outgoing connection is in the dialing state. |
int |
STATE_DISCONNECTED
A connection has been disconnected. |
int |
STATE_HOLDING
A connection is on hold. |
int |
STATE_INITIALIZING
The connection is initializing. |
int |
STATE_NEW
The connection is new and not connected. |
int |
STATE_RINGING
An incoming connection is in the ringing state. |
Public constructors | |
---|---|
Connection()
Create a new Connection. |
Public methods | |
---|---|
static
String
|
capabilitiesToString(int capabilities)
|
static
Connection
|
createCanceledConnection()
Return a |
static
Connection
|
createFailedConnection(DisconnectCause disconnectCause)
Return a |
final
void
|
destroy()
Tears down the Connection object. |
final
Uri
|
getAddress()
|
final
int
|
getAddressPresentation()
|
final
boolean
|
getAudioModeIsVoip()
|
final
CallAudioState
|
getCallAudioState()
|
final
String
|
getCallerDisplayName()
|
final
int
|
getCallerDisplayNamePresentation()
|
final
Conference
|
getConference()
|
final
List<Conferenceable>
|
getConferenceables()
Returns the connections or conferences with which this connection can be conferenced. |
final
int
|
getConnectionCapabilities()
Returns the connection's capabilities, as a bit mask of the |
final
DisconnectCause
|
getDisconnectCause()
|
final
Bundle
|
getExtras()
Returns the extras associated with this connection. |
final
int
|
getState()
|
final
StatusHints
|
getStatusHints()
|
final
Connection.VideoProvider
|
getVideoProvider()
|
final
boolean
|
isRingbackRequested()
Returns whether this connection is requesting that the system play a ringback tone on its behalf. |
void
|
onAbort()
Notifies this Connection of a request to abort. |
void
|
onAnswer(int videoState)
Notifies this Connection, which is in |
void
|
onAnswer()
Notifies this Connection, which is in |
void
|
onCallAudioStateChanged(CallAudioState state)
Notifies this Connection that the |
void
|
onDisconnect()
Notifies this Connection of a request to disconnect. |
void
|
onHold()
Notifies this Connection of a request to hold. |
void
|
onPlayDtmfTone(char c)
Notifies this Connection of a request to play a DTMF tone. |
void
|
onPostDialContinue(boolean proceed)
Notifies this Connection whether the user wishes to proceed with the post-dial DTMF codes. |
void
|
onReject()
Notifies this Connection, which is in |
void
|
onReject(String replyMessage)
Notifies this Connection, which is in |
void
|
onSeparate()
Notifies this Connection of a request to separate from its parent conference. |
void
|
onStateChanged(int state)
Notifies this Connection of an internal state change. |
void
|
onStopDtmfTone()
Notifies this Connection of a request to stop any currently playing DTMF tones. |
void
|
onUnhold()
Notifies this Connection of a request to exit a hold state. |
final
void
|
setActive()
Sets state to active (e.g., an ongoing connection where two or more parties can actively communicate). |
final
void
|
setAddress(Uri address, int presentation)
Sets the value of the |
final
void
|
setAudioModeIsVoip(boolean isVoip)
Requests that the framework use VOIP audio mode for this connection. |
final
void
|
setCallerDisplayName(String callerDisplayName, int presentation)
Sets the caller display name (CNAP). |
final
void
|
setConferenceableConnections(List<Connection> conferenceableConnections)
Sets the connections with which this connection can be conferenced. |
final
void
|
setConferenceables(List<Conferenceable> conferenceables)
Similar to |
final
void
|
setConnectionCapabilities(int connectionCapabilities)
Sets the connection's capabilities as a bit mask of the |
final
void
|
setDialing()
Sets state to dialing (e.g., dialing an outbound connection). |
final
void
|
setDisconnected(DisconnectCause disconnectCause)
Sets state to disconnected. |
final
void
|
setExtras(Bundle extras)
Set some extras that can be associated with this |
final
void
|
setInitialized()
Sets state to initialized (the Connection has been set up and is now ready to be used). |
final
void
|
setInitializing()
Sets state to initializing (this Connection is not yet ready to be used). |
final
void
|
setNextPostDialChar(char nextChar)
Informs listeners that this |
final
void
|
setOnHold()
Sets state to be on hold. |
final
void
|
setPostDialWait(String remaining)
Informs listeners that this |
final
void
|
setRingbackRequested(boolean ringback)
Requests that the framework play a ringback tone. |
final
void
|
setRinging()
Sets state to ringing (e.g., an inbound ringing connection). |
final
void
|
setStatusHints(StatusHints statusHints)
Sets the label and icon status to display in the in-call UI. |
final
void
|
setVideoProvider(Connection.VideoProvider videoProvider)
Sets the video connection provider. |
final
void
|
setVideoState(int videoState)
Set the video state for the connection. |
static
String
|
stateToString(int state)
|
Inherited methods | |
---|---|
From
class
java.lang.Object
|
int CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO
When set, prevents a video call from being downgraded to an audio-only call.
Should be set when the VideoState has the STATE_TX_ENABLED
or
STATE_RX_ENABLED
bits set to indicate that the connection cannot be
downgraded from a video call back to a VideoState of
STATE_AUDIO_ONLY
.
Intuitively, a call which can be downgraded to audio should also have local and remote
video
capabilities (see CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL
and
CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL
).
Constant Value: 8388608 (0x00800000)
int CAPABILITY_CAN_PAUSE_VIDEO
For video calls, indicates whether the outgoing video for the call can be paused using
the STATE_PAUSED
VideoState.
Constant Value: 1048576 (0x00100000)
int CAPABILITY_CAN_SEND_RESPONSE_VIA_CONNECTION
Indicates that the connection itself wants to handle any sort of reply response, rather than relying on SMS.
Constant Value: 4194304 (0x00400000)
int CAPABILITY_CAN_UPGRADE_TO_VIDEO
Call can be upgraded to a video call.
Constant Value: 524288 (0x00080000)
int CAPABILITY_DISCONNECT_FROM_CONFERENCE
Connection is able to be individually disconnected when in a Conference
.
Constant Value: 8192 (0x00002000)
int CAPABILITY_HOLD
Connection can currently be put on hold or unheld. This is distinct from
CAPABILITY_SUPPORT_HOLD
in that although a connection may support 'hold' most times,
it does not at the moment support the function. This can be true while the call is in the
state STATE_DIALING
, for example. During this condition, an in-call UI may
display a disabled 'hold' button.
Constant Value: 1 (0x00000001)
int CAPABILITY_MANAGE_CONFERENCE
Connection supports conference management. This capability only applies to
Conference
s which can have Connection
s as children.
Constant Value: 128 (0x00000080)
int CAPABILITY_MERGE_CONFERENCE
Connections within a conference can be merged. A ConnectionService
has the option to
add a Conference
before the child Connection
s are merged. This is how
CDMA-based Connection
s are implemented. For these unmerged Conference
s, this
capability allows a merge button to be shown while the conference is in the foreground
of the in-call UI.
This is only intended for use by a Conference
.
Constant Value: 4 (0x00000004)
int CAPABILITY_MUTE
Connection can be muted.
Constant Value: 64 (0x00000040)
int CAPABILITY_RESPOND_VIA_TEXT
Connection supports responding via text option.
Constant Value: 32 (0x00000020)
int CAPABILITY_SEPARATE_FROM_CONFERENCE
Connection is able to be separated from its parent Conference
, if any.
Constant Value: 4096 (0x00001000)
int CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL
Local device supports bidirectional video calling.
Constant Value: 768 (0x00000300)
int CAPABILITY_SUPPORTS_VT_LOCAL_RX
Local device supports receiving video.
Constant Value: 256 (0x00000100)
int CAPABILITY_SUPPORTS_VT_LOCAL_TX
Local device supports transmitting video.
Constant Value: 512 (0x00000200)
int CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL
Remote device supports bidirectional video calling.
Constant Value: 3072 (0x00000c00)
int CAPABILITY_SUPPORTS_VT_REMOTE_RX
Remote device supports receiving video.
Constant Value: 1024 (0x00000400)
int CAPABILITY_SUPPORTS_VT_REMOTE_TX
Remote device supports transmitting video.
Constant Value: 2048 (0x00000800)
int CAPABILITY_SUPPORT_HOLD
Connection supports the hold feature.
Constant Value: 2 (0x00000002)
int CAPABILITY_SWAP_CONFERENCE
Connections within a conference can be swapped between foreground and background.
See CAPABILITY_MERGE_CONFERENCE
for additional information.
This is only intended for use by a Conference
.
Constant Value: 8 (0x00000008)
String EXTRA_CALL_SUBJECT
Connection extra key used to store the subject for an incoming call. The user interface can
query this extra and display its contents for incoming calls. Will only be used if the
PhoneAccount
supports the capability CAPABILITY_CALL_SUBJECT
.
Constant Value: "android.telecom.extra.CALL_SUBJECT"
String EXTRA_CHILD_ADDRESS
Connection extra key used to store a child number associated with the current connection.
Used to communicate to the user interface that the connection was received via
a child address (i.e. phone number) associated with the PhoneAccount
's primary
address.
Constant Value: "android.telecom.extra.CHILD_ADDRESS"
String EXTRA_LAST_FORWARDED_NUMBER
Connection extra key used to store the last forwarded number associated with the current connection. Used to communicate to the user interface that the connection was forwarded via the specified number.
Constant Value: "android.telecom.extra.LAST_FORWARDED_NUMBER"
int STATE_ACTIVE
A connection is active. Both parties are connected to the call and can actively communicate.
Constant Value: 4 (0x00000004)
int STATE_DIALING
An outgoing connection is in the dialing state. In this state the other party has not yet answered the call and the user traditionally hears a ringback tone.
Constant Value: 3 (0x00000003)
int STATE_DISCONNECTED
A connection has been disconnected. This is the final state once the user has been disconnected from a call either locally, remotely or by an error in the service.
Constant Value: 6 (0x00000006)
int STATE_HOLDING
A connection is on hold.
Constant Value: 5 (0x00000005)
int STATE_INITIALIZING
The connection is initializing. This is generally the first state for a Connection
returned by a ConnectionService
.
Constant Value: 0 (0x00000000)
int STATE_NEW
The connection is new and not connected.
Constant Value: 1 (0x00000001)
int STATE_RINGING
An incoming connection is in the ringing state. During this state, the user's ringer or vibration feature will be activated.
Constant Value: 2 (0x00000002)
String capabilitiesToString (int capabilities)
Parameters | |
---|---|
capabilities |
int
|
Returns | |
---|---|
String |
Connection createCanceledConnection ()
Return a Connection
which represents a canceled connection attempt. The returned
Connection
will have state STATE_DISCONNECTED
, and cannot be moved out of
that state. This connection should not be used for anything, and no other
Connection
s should be attempted.
so users of this method need not maintain a reference to its return value to destroy it.
Returns | |
---|---|
Connection |
A Connection which indicates that the underlying connection should
be canceled.
|
Connection createFailedConnection (DisconnectCause disconnectCause)
Return a Connection
which represents a failed connection attempt. The returned
Connection
will have a DisconnectCause
and as specified,
and a getState()
of STATE_DISCONNECTED
.
The returned Connection
can be assumed to destroy()
itself when appropriate,
so users of this method need not maintain a reference to its return value to destroy it.
Parameters | |
---|---|
disconnectCause |
DisconnectCause :
The disconnect cause, (). |
Returns | |
---|---|
Connection |
A Connection which indicates failure.
|
Uri getAddress ()
Returns | |
---|---|
Uri |
The address (e.g., phone number) to which this Connection is currently communicating. |
int getAddressPresentation ()
Returns | |
---|---|
int |
The presentation requirements for the address.
See TelecomManager for valid values.
|
boolean getAudioModeIsVoip ()
Returns | |
---|---|
boolean |
True if the connection's audio mode is VOIP. |
CallAudioState getCallAudioState ()
Returns | |
---|---|
CallAudioState |
The audio state of the connection, describing how its audio is currently
being routed by the system. This is null if this Connection
does not directly know about its audio state.
|
String getCallerDisplayName ()
Returns | |
---|---|
String |
The caller display name (CNAP). |
int getCallerDisplayNamePresentation ()
Returns | |
---|---|
int |
The presentation requirements for the handle.
See TelecomManager for valid values.
|
Conference getConference ()
Returns | |
---|---|
Conference |
The conference that this connection is a part of. Null if it is not part of any conference. |
List<Conferenceable> getConferenceables ()
Returns the connections or conferences with which this connection can be conferenced.
Returns | |
---|---|
List<Conferenceable> |
int getConnectionCapabilities ()
Returns the connection's capabilities, as a bit mask of the CAPABILITY_*
constants.
Returns | |
---|---|
int |
DisconnectCause getDisconnectCause ()
Returns | |
---|---|
DisconnectCause |
The DisconnectCause for this connection.
|
Bundle getExtras ()
Returns the extras associated with this connection.
Returns | |
---|---|
Bundle |
The extras associated with this connection. |
StatusHints getStatusHints ()
Returns | |
---|---|
StatusHints |
The status hints for this connection. |
Connection.VideoProvider getVideoProvider ()
Returns | |
---|---|
Connection.VideoProvider |
boolean isRingbackRequested ()
Returns whether this connection is requesting that the system play a ringback tone on its behalf.
Returns | |
---|---|
boolean |
void onAnswer (int videoState)
Notifies this Connection, which is in STATE_RINGING
, of
a request to accept.
Parameters | |
---|---|
videoState |
int :
The video state in which to answer the connection.
|
void onAnswer ()
Notifies this Connection, which is in STATE_RINGING
, of
a request to accept.
void onCallAudioStateChanged (CallAudioState state)
Notifies this Connection that the getCallAudioState()
property has a new value.
Parameters | |
---|---|
state |
CallAudioState :
The new connection audio state.
|
void onDisconnect ()
Notifies this Connection of a request to disconnect.
void onPlayDtmfTone (char c)
Notifies this Connection of a request to play a DTMF tone.
Parameters | |
---|---|
c |
char :
A DTMF character.
|
void onPostDialContinue (boolean proceed)
Notifies this Connection whether the user wishes to proceed with the post-dial DTMF codes.
Parameters | |
---|---|
proceed |
boolean
|
void onReject ()
Notifies this Connection, which is in STATE_RINGING
, of
a request to reject.
void onReject (String replyMessage)
Notifies this Connection, which is in STATE_RINGING
, of
a request to reject with a message.
Parameters | |
---|---|
replyMessage |
String
|
void onSeparate ()
Notifies this Connection of a request to separate from its parent conference.
void onStateChanged (int state)
Notifies this Connection of an internal state change. This method is called after the state is changed.
Parameters | |
---|---|
state |
int :
The new state, one of the STATE_* constants.
|
void onStopDtmfTone ()
Notifies this Connection of a request to stop any currently playing DTMF tones.
void onUnhold ()
Notifies this Connection of a request to exit a hold state.
void setActive ()
Sets state to active (e.g., an ongoing connection where two or more parties can actively communicate).
void setAddress (Uri address, int presentation)
Sets the value of the getAddress()
property.
Parameters | |
---|---|
address |
Uri :
The new address. |
presentation |
int :
The presentation requirements for the address.
See TelecomManager for valid values.
|
void setAudioModeIsVoip (boolean isVoip)
Requests that the framework use VOIP audio mode for this connection.
Parameters | |
---|---|
isVoip |
boolean :
True if the audio mode is VOIP.
|
void setCallerDisplayName (String callerDisplayName, int presentation)
Sets the caller display name (CNAP).
Parameters | |
---|---|
callerDisplayName |
String :
The new display name. |
presentation |
int :
The presentation requirements for the handle.
See TelecomManager for valid values.
|
void setConferenceableConnections (List<Connection> conferenceableConnections)
Sets the connections with which this connection can be conferenced.
Parameters | |
---|---|
conferenceableConnections |
List :
The set of connections this connection can conference with.
|
void setConferenceables (List<Conferenceable> conferenceables)
Similar to setConferenceableConnections(java.util.List)
, sets a list of connections
or conferences with which this connection can be conferenced.
Parameters | |
---|---|
conferenceables |
List :
The conferenceables.
|
void setConnectionCapabilities (int connectionCapabilities)
Sets the connection's capabilities as a bit mask of the CAPABILITY_*
constants.
Parameters | |
---|---|
connectionCapabilities |
int :
The new connection capabilities.
|
void setDialing ()
Sets state to dialing (e.g., dialing an outbound connection).
void setDisconnected (DisconnectCause disconnectCause)
Sets state to disconnected.
Parameters | |
---|---|
disconnectCause |
DisconnectCause :
The reason for the disconnection, as specified by
DisconnectCause .
|
void setExtras (Bundle extras)
Set some extras that can be associated with this Connection
.
New or existing keys are replaced in the Connection
extras. Keys which are no longer
in the new extras, but were present the last time setExtras
was called are removed.
No assumptions should be made as to how an In-Call UI or service will handle these extras. Keys should be fully qualified (e.g., com.example.MY_EXTRA) to avoid conflicts.
Parameters | |
---|---|
extras |
Bundle :
The extras associated with this Connection .
|
void setInitialized ()
Sets state to initialized (the Connection has been set up and is now ready to be used).
void setInitializing ()
Sets state to initializing (this Connection is not yet ready to be used).
void setNextPostDialChar (char nextChar)
Informs listeners that this Connection
has processed a character in the post-dial
started state. This is done when (a) the Connection
is issuing a DTMF sequence;
and (b) it wishes to signal Telecom to play the corresponding DTMF tone locally.
Parameters | |
---|---|
nextChar |
char :
The DTMF character that was just processed by the Connection .
|
void setPostDialWait (String remaining)
Informs listeners that this Connection
is in a post-dial wait state. This is done
when (a) the Connection
is issuing a DTMF sequence; (b) it has encountered a "wait"
character; and (c) it wishes to inform the In-Call app that it is waiting for the end-user
to send an onPostDialContinue(boolean)
signal.
Parameters | |
---|---|
remaining |
String :
The DTMF character sequence remaining to be emitted once the
onPostDialContinue(boolean) is received, including any "wait" characters
that remaining sequence may contain.
|
void setRingbackRequested (boolean ringback)
Requests that the framework play a ringback tone. This is to be invoked by implementations that do not play a ringback tone themselves in the connection's audio stream.
Parameters | |
---|---|
ringback |
boolean :
Whether the ringback tone is to be played.
|
void setRinging ()
Sets state to ringing (e.g., an inbound ringing connection).
void setStatusHints (StatusHints statusHints)
Sets the label and icon status to display in the in-call UI.
Parameters | |
---|---|
statusHints |
StatusHints :
The status label and icon to set.
|
void setVideoProvider (Connection.VideoProvider videoProvider)
Sets the video connection provider.
Parameters | |
---|---|
videoProvider |
Connection.VideoProvider :
The video provider.
|
void setVideoState (int videoState)
Set the video state for the connection.
Valid values: STATE_AUDIO_ONLY
,
STATE_BIDIRECTIONAL
,
STATE_TX_ENABLED
,
STATE_RX_ENABLED
.
Parameters | |
---|---|
videoState |
int :
The new video state.
|
String stateToString (int state)
Parameters | |
---|---|
state |
int :
An integer value of a STATE_* constant. |
Returns | |
---|---|
String |
A string representation of the value. |