public abstract class Connection
extends Conferenceable
java.lang.Object | ||
↳ | android.telecom.Conferenceable | |
↳ | android.telecom.Connection |
代表电话或连接到传送语音和/或视频流量的远程端点。
实现会创建一个Connection
的自定义子类并将其作为返回值onCreateIncomingConnection(PhoneAccountHandle, ConnectionRequest)
或onCreateOutgoingConnection(PhoneAccountHandle, ConnectionRequest)
返回给框架。 然后,实现负责更新Connection
的状态,并且必须调用destroy()
向框架发信号通知Connection
不再使用,并且可以恢复关联的资源。
Nested classes |
|
---|---|
class |
Connection.VideoProvider 提供了一种控制与 |
Public constructors |
|
---|---|
Connection() 创建一个新的连接。 |
Public methods |
|
---|---|
static String |
capabilitiesToString(int capabilities) |
static Connection |
createCanceledConnection() 返回代表取消连接尝试的 |
static Connection |
createFailedConnection(DisconnectCause disconnectCause) 返回代表连接尝试失败的 |
final void |
destroy() 放下Connection对象。 |
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() 返回与此连接可召开会议的连接或会议。 |
final int |
getConnectionCapabilities() 作为 |
final DisconnectCause |
getDisconnectCause() |
final Bundle |
getExtras() 返回与此连接关联的额外内容。 |
final int |
getState() |
final StatusHints |
getStatusHints() |
final Connection.VideoProvider |
getVideoProvider() |
final boolean |
isRingbackRequested() 返回此连接是否正在请求系统以其名义播放回铃音。 |
void |
onAbort() 通知此连接请求中止。 |
void |
onAnswer(int videoState) 通知此连接(位于 |
void |
onAnswer() 通知此连接(位于 |
void |
onCallAudioStateChanged(CallAudioState state) 通知此连接 |
void |
onDisconnect() 通知此连接请求断开连接。 |
void |
onHold() 通知此连接的请求保留。 |
void |
onPlayDtmfTone(char c) 通知此连接请求播放DTMF音。 |
void |
onPostDialContinue(boolean proceed) 通知此连接用户是否希望继续使用拨号后DTMF代码。 |
void |
onReject() 通知此连接(位于 |
void |
onReject(String replyMessage) 通知此连接,该连接位于 |
void |
onSeparate() 通知此连接请求与其父会议分开。 |
void |
onStateChanged(int state) 通知此连接的内部状态更改。 |
void |
onStopDtmfTone() 通知此连接请求停止任何正在播放的DTMF音。 |
void |
onUnhold() 通知此连接请求退出保持状态。 |
final void |
setActive() 将状态设置为活动状态(例如,两方或多方可以主动进行通信的正在进行的连接)。 |
final void |
setAddress(Uri address, int presentation) 设置 |
final void |
setAudioModeIsVoip(boolean isVoip) 要求该框架为此连接使用VOIP音频模式。 |
final void |
setCallerDisplayName(String callerDisplayName, int presentation) 设置来电显示名称(CNAP)。 |
final void |
setConferenceableConnections(List<Connection> conferenceableConnections) 设置可与此连接进行会议的连接。 |
final void |
setConferenceables(List<Conferenceable> conferenceables) 类似于 |
final void |
setConnectionCapabilities(int connectionCapabilities) 将连接的能力设置为 |
final void |
setDialing() 将状态设置为拨号(例如,拨出出站连接)。 |
final void |
setDisconnected(DisconnectCause disconnectCause) 将状态设置为断开。 |
final void |
setExtras(Bundle extras) 设置一些可以与这个 |
final void |
setInitialized() 将状态设置为初始化(Connection已经设置好,现在可以使用了)。 |
final void |
setInitializing() 将状态设置为初始化(此连接尚未准备好使用)。 |
final void |
setNextPostDialChar(char nextChar) 通知监听者这个 |
final void |
setOnHold() 将状态设置为暂停状态。 |
final void |
setPostDialWait(String remaining) 通知监听者该 |
final void |
setRingbackRequested(boolean ringback) 要求该框架播放回铃音。 |
final void |
setRinging() 将状态设置为振铃(例如,入站振铃连接)。 |
final void |
setStatusHints(StatusHints statusHints) 设置要在通话用户界面中显示的标签和图标状态。 |
final void |
setVideoProvider(Connection.VideoProvider videoProvider) 设置视频连接提供商。 |
final void |
setVideoState(int videoState) 设置连接的视频状态。 |
static String |
stateToString(int state) |
Inherited methods |
|
---|---|
From class java.lang.Object
|
int CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO
设置后,可防止将视频通话降级为仅音频通话。
当VideoState将 STATE_TX_ENABLED
或 STATE_RX_ENABLED
位设置为指示连接不能从视频呼叫降级回到 STATE_AUDIO_ONLY
的VideoState时, STATE_AUDIO_ONLY
。
直观地说,可以降级为音频的呼叫也应具有本地和远程视频功能(请参阅 CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL
和 CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL
)。
常量值:8388608(0x00800000)
int CAPABILITY_CAN_PAUSE_VIDEO
对于视频呼叫,指示是否可以使用 STATE_PAUSED
VideoState来暂停呼叫的传出视频。
常量值:1048576(0x00100000)
int CAPABILITY_CAN_SEND_RESPONSE_VIA_CONNECTION
表示连接本身想要处理任何类型的回复响应,而不是依靠SMS。
常量值:4194304(0x00400000)
int CAPABILITY_CAN_UPGRADE_TO_VIDEO
通话可以升级为视频通话。
常量值:524288(0x00080000)
int CAPABILITY_DISCONNECT_FROM_CONFERENCE
在 Conference
连接可以单独断开。
常量值:8192(0x00002000)
int CAPABILITY_HOLD
连接目前可以暂停或取消。 这与CAPABILITY_SUPPORT_HOLD
不同,因为虽然连接可能最多支持“保留”,但它目前不支持该功能。 例如,当呼叫处于状态STATE_DIALING
,这可能是真实的。 在这种情况下,通话中的用户界面可能会显示禁用的“保留”按钮。
常数值:1(0x00000001)
int CAPABILITY_MANAGE_CONFERENCE
连接支持会议管理。 此功能仅适用于Conference
,其中可能有Connection
孩子。
常量值:128(0x00000080)
int CAPABILITY_MERGE_CONFERENCE
会议内的连接可以合并。 A ConnectionService
可以选择在合并子Connection
之前添加Conference
。 这就是如何实现基于CDMA的Connection
。 对于这些未合并的Conference
,此功能允许在会议位于通话用户界面的前台时显示合并按钮。
这仅适用于 Conference
。
常量值:4(0x00000004)
int CAPABILITY_RESPOND_VIA_TEXT
Connection支持通过文本选项进行响应。
常量值:32(0x00000020)
int CAPABILITY_SEPARATE_FROM_CONFERENCE
连接可以从其父母 Conference
分离,如果有的话。
常量值:4096(0x00001000)
int CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL
本地设备支持双向视频通话。
常量值:768(0x00000300)
int CAPABILITY_SUPPORTS_VT_LOCAL_RX
本地设备支持接收视频。
常量值:256(0x00000100)
int CAPABILITY_SUPPORTS_VT_LOCAL_TX
本地设备支持传输视频。
常量值:512(0x00000200)
int CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL
远程设备支持双向视频通话。
常量值:3072(0x00000c00)
int CAPABILITY_SUPPORTS_VT_REMOTE_RX
远程设备支持接收视频。
常量值:1024(0x00000400)
int CAPABILITY_SUPPORTS_VT_REMOTE_TX
远程设备支持传输视频。
常量值:2048(0x00000800)
int CAPABILITY_SUPPORT_HOLD
连接支持保持功能。
常量值:2(0x00000002)
int CAPABILITY_SWAP_CONFERENCE
会议中的连接可以在前景和背景之间交换。 有关其他信息,请参阅CAPABILITY_MERGE_CONFERENCE
。
这仅适用于 Conference
。
常量值:8(0x00000008)
String EXTRA_CALL_SUBJECT
用于存储来话呼叫的连接额外密钥。 用户界面可以查询此额外信息并显示来电的内容。 仅在PhoneAccount
支持功能CAPABILITY_CALL_SUBJECT
。
常量值:“android.telecom.extra.CALL_SUBJECT”
String EXTRA_CHILD_ADDRESS
用于存储与当前连接关联的子编号的连接额外密钥。 用于与用户界面通信,该连接是通过与PhoneAccount
的主地址关联的子地址(即电话号码) PhoneAccount
的。
常量值:“android.telecom.extra.CHILD_ADDRESS”
String EXTRA_LAST_FORWARDED_NUMBER
用于存储与当前连接关联的最后转发号码的连接额外密钥。 用于与用户界面通信连接已通过指定号码转发。
常量值:“android.telecom.extra.LAST_FORWARDED_NUMBER”
int STATE_DIALING
拨出连接处于拨号状态。 在这种状态下,对方还没有应答该呼叫,并且用户传统上听到回铃音。
常量值:3(0x00000003)
int STATE_DISCONNECTED
连接已断开。 一旦用户在本地,远程或服务错误中断开通话,这是最终状态。
常数值:6(0x00000006)
int STATE_INITIALIZING
连接正在初始化。 这通常是由Connection
返回的ConnectionService
的第一个状态。
常量值:0(0x00000000)
int STATE_RINGING
进入的连接处于振铃状态。 在此状态下,用户的铃声或振动功能将被激活。
常量值:2(0x00000002)
String capabilitiesToString (int capabilities)
Parameters | |
---|---|
capabilities |
int
|
Returns | |
---|---|
String |
Connection createCanceledConnection ()
返回代表取消连接尝试的Connection
。 返回的Connection
将具有状态STATE_DISCONNECTED
,并且不能移出该状态。 这个连接不应该用于任何事情,也不应该尝试其他的Connection
。
所以此方法的用户不需要维护对它的返回值的引用来销毁它。
Returns | |
---|---|
Connection |
A Connection which indicates that the underlying connection should be canceled. |
Connection createFailedConnection (DisconnectCause disconnectCause)
返回代表连接尝试失败的Connection
。 返回的Connection
将具有DisconnectCause
和指定的,以及getState()
的STATE_DISCONNECTED
。
在适当的情况下,返回的 Connection
可以假定为 destroy()
本身,所以此方法的用户不需要维护对其返回值的引用来销毁它。
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 | |
---|---|
List<Conferenceable> |
int getConnectionCapabilities ()
作为 CAPABILITY_*
常量的位掩码返回连接的功能。
Returns | |
---|---|
int |
DisconnectCause getDisconnectCause ()
Returns | |
---|---|
DisconnectCause |
The DisconnectCause for this connection. |
Bundle getExtras ()
返回与此连接关联的额外内容。
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 | |
---|---|
boolean |
void onAnswer (int videoState)
通知此连接,该连接位于 STATE_RINGING
,接受请求。
Parameters | |
---|---|
videoState |
int : The video state in which to answer the connection. |
void onCallAudioStateChanged (CallAudioState state)
通知此连接 getCallAudioState()
属性具有新值。
Parameters | |
---|---|
state |
CallAudioState : The new connection audio state. |
void onPlayDtmfTone (char c)
通知此连接请求播放DTMF音。
Parameters | |
---|---|
c |
char : A DTMF character. |
void onPostDialContinue (boolean proceed)
通知此连接用户是否希望继续使用拨号后DTMF代码。
Parameters | |
---|---|
proceed |
boolean
|
void onReject (String replyMessage)
通知此连接,该连接位于 STATE_RINGING
,请求拒绝消息。
Parameters | |
---|---|
replyMessage |
String
|
void onStateChanged (int state)
通知此连接的内部状态更改。 该方法在状态更改后调用。
Parameters | |
---|---|
state |
int : The new state, one of the STATE_* constants. |
void setAddress (Uri address, int presentation)
设置 getAddress()
属性的值。
Parameters | |
---|---|
address |
Uri : The new address. |
presentation |
int : The presentation requirements for the address. See TelecomManager for valid values. |
void setAudioModeIsVoip (boolean isVoip)
要求该框架为此连接使用VOIP音频模式。
Parameters | |
---|---|
isVoip |
boolean : True if the audio mode is VOIP. |
void setCallerDisplayName (String callerDisplayName, int presentation)
设置来电显示名称(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)
设置可与此连接进行会议的连接。
Parameters | |
---|---|
conferenceableConnections |
List : The set of connections this connection can conference with. |
void setConferenceables (List<Conferenceable> conferenceables)
与 setConferenceableConnections(java.util.List)
类似,设置可以与此连接进行会议的连接或会议的列表。
Parameters | |
---|---|
conferenceables |
List : The conferenceables. |
void setConnectionCapabilities (int connectionCapabilities)
将连接的能力设置为 CAPABILITY_*
常量的位掩码。
Parameters | |
---|---|
connectionCapabilities |
int : The new connection capabilities. |
void setDisconnected (DisconnectCause disconnectCause)
将状态设置为断开。
Parameters | |
---|---|
disconnectCause |
DisconnectCause : The reason for the disconnection, as specified by DisconnectCause . |
void setExtras (Bundle extras)
设置一些可以与这个 Connection
关联的额外 Connection
。
新的或现有的密钥在Connection
临时演员中被替换。 已经不在新的演员setExtras
,但是最后一次被调用的键被删除。
关于In-Call UI或服务如何处理这些额外内容,不应该做出任何假设。 密钥应完全限定(例如,com.example.MY_EXTRA)以避免冲突。
Parameters | |
---|---|
extras |
Bundle : The extras associated with this Connection . |
void setNextPostDialChar (char nextChar)
通知监听者这个Connection
已经在拨号后启动状态中处理了一个角色。 这是在(a) Connection
发出DTMF序列时完成的; (b)它希望通知电信在本地播放相应的DTMF音。
Parameters | |
---|---|
nextChar |
char : The DTMF character that was just processed by the Connection . |
void setPostDialWait (String remaining)
通知监听者该Connection
处于拨号后等待状态。 这是在(a) Connection
发出DTMF序列时完成的; (b)遇到“等待”字符; 和(c)它希望通知在电话应用程序它正在等待最终用户发送onPostDialContinue(boolean)
信号。
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)
要求该框架播放回铃音。 这是由连接音频流中不会自行播放回铃音的实现调用的。
Parameters | |
---|---|
ringback |
boolean : Whether the ringback tone is to be played. |
void setStatusHints (StatusHints statusHints)
设置要在通话用户界面中显示的标签和图标状态。
Parameters | |
---|---|
statusHints |
StatusHints : The status label and icon to set. |
void setVideoProvider (Connection.VideoProvider videoProvider)
设置视频连接提供商。
Parameters | |
---|---|
videoProvider |
Connection.VideoProvider : The video provider. |
void setVideoState (int videoState)
设置连接的视频状态。 有效值: 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. |