public class TelecomManager
extends Object
java.lang.Object | |
↳ | android.telecom.TelecomManager |
提供有关活动呼叫和注册/呼叫管理功能的信息。 应用程序可以使用此类中的方法来确定当前的呼叫状态。
应用程序不直接实例化此类; 相反,他们通过Context.getSystemService(Context.TELECOM_SERVICE)
检索对实例的引用。
请注意,访问某些电信信息是受到许可保护的。 除非应用程序在其清单文件中声明了适当的权限,否则您的应用程序无法访问受保护的信息或访问受保护的功能。 在适用权限的地方,它们在方法描述中被记录。
Inherited methods |
|
---|---|
From class java.lang.Object
|
String ACTION_CHANGE_DEFAULT_DIALER
活动操作:显示一个对话框,询问用户是否EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME
指定的EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME
替换当前的默认拨号器。 用法示例:
Intent intent = new Intent(TelecomManager.ACTION_CHANGE_DEFAULT_DIALER); intent.putExtra(TelecomManager.EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME, getActivity().getPackageName()); startActivity(intent);
常量值:“android.telecom.action.CHANGE_DEFAULT_DIALER”
String ACTION_CHANGE_PHONE_ACCOUNTS
Intent
操作用于显示用于配置 PhoneAccount
首选项的设置页面。
常量值:“android.telecom.action.CHANGE_PHONE_ACCOUNTS”
String ACTION_CONFIGURE_PHONE_ACCOUNT
电信框架发送的一个Intent
动作,用于为注册的PhoneAccount
启动配置对话框。 没有默认对话框,并且每个注册PhoneAccount
应用程序PhoneAccount
应该提供一个。
用户可以通过电话应用程序的设置菜单访问启用的PhoneAccount
的列表。 对于每个条目,设置应用都会添加一个点击操作。 触发后,点击操作将启动此意图以及额外的EXTRA_PHONE_ACCOUNT_HANDLE
以指示要配置的PhoneAccount
。 如果PhoneAccount
包没有为这个意图注册Activity
,那么它将不会被发送。
常量值:“android.telecom.action.CONFIGURE_PHONE_ACCOUNT”
String ACTION_DEFAULT_DIALER_CHANGED
广播意图操作指示当前默认拨号程序已更改。 额外的字符串EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME
将包含默认拨号程序更改为的包的名称。
常量值:“android.telecom.action.DEFAULT_DIALER_CHANGED”
String ACTION_INCOMING_CALL
活动操作:启动用于处理来电的用户界面。 此意图通过向电信系统通知特定呼叫服务存在来电(参见ConnectionService
)来启动通话中的用户界面。 电信读取意图额外费用,找到并绑定到电信最终将用于控制和获取有关该呼叫的信息的相应ConnectionService
。
输入:get * Extra字段EXTRA_PHONE_ACCOUNT_HANDLE
包含电信应绑定到的ConnectionService
的组件名称。 在显示任何用户界面之前,电信将询问连接服务以获取有关该呼叫的更多信息。
常量值:“android.telecom.action.INCOMING_CALL”
String ACTION_SHOW_CALL_ACCESSIBILITY_SETTINGS
Intent
操作用于显示通话辅助功能设置页面。
常量值:“android.telecom.action.SHOW_CALL_ACCESSIBILITY_SETTINGS”
String ACTION_SHOW_CALL_SETTINGS
Intent
操作用于显示呼叫设置页面。
常量值:“android.telecom.action.SHOW_CALL_SETTINGS”
String ACTION_SHOW_MISSED_CALLS_NOTIFICATION
广播意图操作,让自定义组件知道显示未接来电通知。 如果不存在自定义组件,则将其发送到默认拨号器,该拨号器应发布未接来电通知。
常量值:“android.telecom.action.SHOW_MISSED_CALLS_NOTIFICATION”
String ACTION_SHOW_RESPOND_VIA_SMS_SETTINGS
Intent
操作用于通过短信设置页面显示响应。
常量值:“android.telecom.action.SHOW_RESPOND_VIA_SMS_SETTINGS”
char DTMF_CHARACTER_PAUSE
发送的用于指示拨号系统的双音多频信令字符应暂停一段预定义时间。
常量值:44(0x0000002c)
char DTMF_CHARACTER_WAIT
发送指示拨号系统的双音多频信令字符应在继续之前等待用户确认。
常量值:59(0x0000003b)
String EXTRA_CALL_BACK_NUMBER
线路另一端的用户将看到的号码(用于返回呼叫)。
ConnectionService
S的互动 RemoteConnection
唯一应该当填充此 getLine1Number()
值,因为这是用户的预期呼叫方ID。
常量值:“android.telecom.extra.CALL_BACK_NUMBER”
String EXTRA_CALL_DISCONNECT_CAUSE
包含断开连接代码的 ACTION_PHONE_STATE_CHANGED
可选 ACTION_PHONE_STATE_CHANGED
。
常量值:“android.telecom.extra.CALL_DISCONNECT_CAUSE”
String EXTRA_CALL_DISCONNECT_MESSAGE
包含断开连接消息的 ACTION_PHONE_STATE_CHANGED
可选附加。
常量值:“android.telecom.extra.CALL_DISCONNECT_MESSAGE”
String EXTRA_CALL_SUBJECT
ACTION_CALL
包含一个字符串呼叫主题的附加ACTION_CALL
,它将与呼出呼叫相关联。 只应在PhoneAccount
支持功能CAPABILITY_CALL_SUBJECT
。
常量值:“android.telecom.extra.CALL_SUBJECT”
String EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME
用于提供 ACTION_CHANGE_DEFAULT_DIALER
的软件包名称的额外值。
常量值:“android.telecom.extra.CHANGE_DEFAULT_DIALER_PACKAGE_NAME”
String EXTRA_INCOMING_CALL_ADDRESS
ConnectionService
用于提供已启动新来话呼叫的主叫方的句柄。
常量值:“android.telecom.extra.INCOMING_CALL_ADDRESS”
String EXTRA_INCOMING_CALL_EXTRAS
ACTION_INCOMING_CALL
包含Bundle
可选附加内容,其中包含有关该呼叫的元数据。 这Bundle
将返回到ConnectionService
。
常量值:“android.telecom.extra.INCOMING_CALL_EXTRAS”
String EXTRA_NOTIFICATION_COUNT
与通知关联的呼叫数量。 如果该号码为零,则应该解除未接电话通知。
常量值:“android.telecom.extra.NOTIFICATION_COUNT”
String EXTRA_NOTIFICATION_PHONE_NUMBER
与未接来电相关的号码。 此号码仅在EXTRA_NOTIFICATION_COUNT为1时有用。
常量值:“android.telecom.extra.NOTIFICATION_PHONE_NUMBER”
String EXTRA_OUTGOING_CALL_EXTRAS
可选额外ACTION_CALL
和ACTION_DIAL
Intent
包含Bundle
其中包含有关该调用的元数据。 这Bundle
将被保存到Call.Details
并在拨打电话时传递给ConnectionService
。
常量值:“android.telecom.extra.OUTGOING_CALL_EXTRAS”
String EXTRA_PHONE_ACCOUNT_HANDLE
与使用的额外 ACTION_CALL
和 ACTION_DIAL
Intent
指定 PhoneAccountHandle
进行调用时使用。
检索 getParcelableExtra(String)
。
常量值:“android.telecom.extra.PHONE_ACCOUNT_HANDLE”
String EXTRA_START_CALL_WITH_SPEAKERPHONE
ACTION_CALL
包含一个布尔值的可选附加 ACTION_CALL
,该布尔值确定是否应该为拨出电话自动打开扬声器电话。
常数值:“android.telecom.extra.START_CALL_WITH_SPEAKERPHONE”
String EXTRA_START_CALL_WITH_VIDEO_STATE
对于包含整数的ACTION_CALL
可选附加ACTION_CALL
,该整数确定传出呼叫的所需视频状态。 有效选项: STATE_AUDIO_ONLY
, STATE_BIDIRECTIONAL
, STATE_RX_ENABLED
, STATE_TX_ENABLED
。
常量值:“android.telecom.extra.START_CALL_WITH_VIDEO_STATE”
String GATEWAY_ORIGINAL_ADDRESS
一个可选的ACTION_CALL
意图额外对应的原始地址拨打电话。 当提供另一个网关地址来调用原始地址时,会使用这个地址。 值为Uri
。 (详情请见GATEWAY_PROVIDER_PACKAGE
)
常量值:“android.telecom.extra.GATEWAY_ORIGINAL_ADDRESS”
String GATEWAY_PROVIDER_PACKAGE
可选的ACTION_CALL
intent extra表示应用程序的包名称,用于指定该调用的替代网关。 该值是一个字符串。 (以下评论对应于所有GATEWAY_ *附加内容)发送ACTION_CALL
意图的应用可以指定与指定并向用户显示的不同地址进行拨号。 这个替代地址被称为网关地址。
常量值:“android.telecom.extra.GATEWAY_PROVIDER_PACKAGE”
String METADATA_IN_CALL_SERVICE_RINGING
一个布尔元数据值,指示InCallService
是否实现振铃。 拨号程序的实现(请参阅getDefaultDialerPackage()
)也希望覆盖系统提供的振铃,因此应在true
的清单注册中将此元数据设置为InCallService
。
常量值:“android.telecom.IN_CALL_SERVICE_RINGING”
String METADATA_IN_CALL_SERVICE_UI
一个布尔型元数据值,指示InCallService
是否实现通话中用户界面。 拨号程序实现(请参阅getDefaultDialerPackage()
)也希望替换调用中的接口,因此应在true
的清单注册中将此元数据设置为InCallService
。
常量值:“android.telecom.IN_CALL_SERVICE_UI”
int PRESENTATION_ALLOWED
表示允许为呼叫者ID显示呼叫的地址或号码。
常数值:1(0x00000001)
int PRESENTATION_PAYPHONE
表示通话的地址或号码属于付费电话。
常量值:4(0x00000004)
int PRESENTATION_RESTRICTED
表示呼叫的地址或号码被对方阻止。
常量值:2(0x00000002)
int PRESENTATION_UNKNOWN
表示呼叫的地址或号码未被运营商指定或已知。
常量值:3(0x00000003)
void addNewIncomingCall (PhoneAccountHandle phoneAccount, Bundle extras)
注册新的来电。 当有来电时, ConnectionService
应该调用此方法。 指定的PhoneAccountHandle
必须已注册registerPhoneAccount(PhoneAccount)
,并且用户必须已启用相应的PhoneAccount
。 这可以使用getPhoneAccount(PhoneAccountHandle)
进行检查。 调用此方法后,系统将绑定到与ConnectionService
相关联的PhoneAccountHandle
并在启动来电用户界面之前请求有关该呼叫的其他信息(请参阅onCreateIncomingConnection(PhoneAccountHandle, ConnectionRequest)
)。
一个 SecurityException
如果任一会抛出 PhoneAccountHandle
不符合注册 PhoneAccount
或相关 PhoneAccount
当前没有被用户启用。
Parameters | |
---|---|
phoneAccount |
PhoneAccountHandle : A PhoneAccountHandle registered with registerPhoneAccount(PhoneAccount) . |
extras |
Bundle : A bundle that will be passed through to onCreateIncomingConnection(PhoneAccountHandle, ConnectionRequest) . |
void cancelMissedCallsNotification ()
如果存在未接来电通知,则将其删除。
要求将方法调用者设置为系统拨号程序应用程序。
Requires permission:MODIFY_PHONE_STATE
Intent createManageBlockedNumbersIntent ()
创建 Intent
它可以搭配 startActivity(Intent)
启动管理活动阻塞的号码。
该活动将显示用户界面来管理阻塞的号码只有 canCurrentUserBlockNumbers(Context)
回报 true
当前用户。
Returns | |
---|---|
Intent |
Uri getAdnUriForPhoneAccount (PhoneAccountHandle accountHandle)
需要权限: MODIFY_PHONE_STATE
Parameters | |
---|---|
accountHandle |
PhoneAccountHandle : The handle for the account to derive an adn query URI for or null to return a URI which will use the default account. |
Returns | |
---|---|
Uri |
The URI (with the content:// scheme) specific to the specified PhoneAccount for the the content retrieve. |
List<PhoneAccountHandle> getCallCapablePhoneAccounts ()
返回可用于拨打和接听电话的PhoneAccountHandle
的列表。 返回的列表仅包含那些已被用户显式启用的帐户。 需要权限: READ_PHONE_STATE
Returns | |
---|---|
List<PhoneAccountHandle> |
A list of PhoneAccountHandle objects. |
也可以看看:
String getDefaultDialerPackage ()
用于确定当前选定的默认拨号程序包。
Returns | |
---|---|
String |
package name for the default dialer package or null if no package has been selected as the default dialer. |
PhoneAccountHandle getDefaultOutgoingPhoneAccount (String uriScheme)
返回PhoneAccount
,用于将拨出的电话拨打到指定的地址uriScheme
。 这PhoneAccount
将始终是从调用getCallCapablePhoneAccounts()
返回的列表的成员。 返回的具体帐户取决于以下优先级:
PhoneAccount
supports the specified scheme, it will be returned. PhoneAccount
that supports the specified scheme, it will be returned. 如果没有PhoneAccount
符合上述条件,则此方法将返回null
。 需要权限: READ_PHONE_STATE
Parameters | |
---|---|
uriScheme |
String : The URI scheme. |
Returns | |
---|---|
PhoneAccountHandle |
The PhoneAccountHandle corresponding to the account to be used. |
String getLine1Number (PhoneAccountHandle accountHandle)
返回给定电话帐户的第1行电话号码。 需要权限: READ_PHONE_STATE
Parameters | |
---|---|
accountHandle |
PhoneAccountHandle : The handle for the account retrieve a number for. |
Returns | |
---|---|
String |
A string representation of the line 1 phone number. |
PhoneAccount getPhoneAccount (PhoneAccountHandle account)
返回PhoneAccount
为指定PhoneAccountHandle
。 对象包括可以在用户界面中使用的资源。
Parameters | |
---|---|
account |
PhoneAccountHandle : The PhoneAccountHandle . |
Returns | |
---|---|
PhoneAccount |
The PhoneAccount object. |
PhoneAccountHandle getSimCallManager ()
返回当前SIM卡呼叫管理器。 应用程序必须为此方法做好准备以返回null
,表示当前不存在用户选择的默认PhoneAccount
。
Returns | |
---|---|
PhoneAccountHandle |
The phone account handle of the current sim call manager. |
String getVoiceMailNumber (PhoneAccountHandle accountHandle)
返回给定电话帐户的语音信箱号码。 需要权限: READ_PHONE_STATE
Parameters | |
---|---|
accountHandle |
PhoneAccountHandle : The handle for the phone account. |
Returns | |
---|---|
String |
The voicemail number for the phone account, and null if one has not been configured. |
boolean handleMmi (String dialString)
将指定的拨号字符串处理为MMI代码。 MMI代码是在拨号盘中输入的任何包含“*”或“#”的字符序列。 其中一些序列通过Telephony处理发起特殊行为。 此方法使用默认订阅。
要求将方法调用者设置为系统拨号程序应用程序。
Requires permission:MODIFY_PHONE_STATE
Parameters | |
---|---|
dialString |
String : The digits to dial. |
Returns | |
---|---|
boolean |
True if the digits were processed as an MMI code, false otherwise. |
boolean handleMmi (String dialString, PhoneAccountHandle accountHandle)
将指定的拨号字符串处理为MMI代码。 MMI代码是在拨号盘中输入的任何包含“*”或“#”的字符序列。 其中一些序列通过Telephony处理发起特殊行为。
要求将方法调用者设置为系统拨号程序应用程序。
Requires permission:MODIFY_PHONE_STATE
Parameters | |
---|---|
dialString |
String : The digits to dial. |
accountHandle |
PhoneAccountHandle : The handle for the account the MMI code should apply to. |
Returns | |
---|---|
boolean |
True if the digits were processed as an MMI code, false otherwise. |
boolean isInCall ()
返回是否有正在进行的电话呼叫(可以处于拨号,振铃,活动或保持状态)。
需要权限: READ_PHONE_STATE
Returns | |
---|---|
boolean |
boolean isVoiceMailNumber (PhoneAccountHandle accountHandle, String number)
返回给定电话号码是否为特定电话帐户的配置语音邮件号码。 需要权限: READ_PHONE_STATE
Parameters | |
---|---|
accountHandle |
PhoneAccountHandle : The handle for the account to check the voicemail number against |
number |
String : The number to look up. |
Returns | |
---|---|
boolean |
void placeCall (Uri address, Bundle extras)
使用具有指定附加功能的系统电信服务,向提供的地址拨打新的去电。 此方法相当于使用ACTION_CALL
拨打外拨电话,但传出呼叫将始终通过系统电信服务发送。 如果方法呼叫者是用户选择的默认拨号器应用程序或预加载的系统拨号器应用程序,则紧急呼叫也将被允许。 需要权限: CALL_PHONE
使用示例:
Uri uri = Uri.fromParts("tel", "12345", null); Bundle extras = new Bundle(); extras.putBoolean(TelecomManager.EXTRA_START_CALL_WITH_SPEAKERPHONE, true); telecomManager.placeCall(uri, extras);The following keys are supported in the supplied extras.
EXTRA_OUTGOING_CALL_EXTRAS
EXTRA_PHONE_ACCOUNT_HANDLE
EXTRA_START_CALL_WITH_SPEAKERPHONE
EXTRA_START_CALL_WITH_VIDEO_STATE
Parameters | |
---|---|
address |
Uri : The address to make the call to. |
extras |
Bundle : Bundle of extras to use with the call. |
void registerPhoneAccount (PhoneAccount account)
注册一个PhoneAccount
供系统使用,该系统将存储在设备加密存储中。 当注册PhoneAccount
S,现有注册将是否被覆盖PhoneAccountHandle
匹配一个的PhoneAccount
其已注册。 一旦注册, PhoneAccount
在拨打电话时作为选项列出给用户。 在帐户可用之前,用户可能仍然需要在电话应用程序设置中启用PhoneAccount
。
甲 SecurityException
如果应用尝试注册一个将被抛出 PhoneAccountHandle
其中内指定的包名称 getComponentName()
不匹配应用的包名称。
Parameters | |
---|---|
account |
PhoneAccount : The complete PhoneAccount . |
void showInCallScreen (boolean showDialpad)
如果有正在进行的呼叫,则将通话中的屏幕显示在前台。 如果当前没有正在进行的呼叫,那么这种方法什么都不做。
要求将方法调用方设置为系统拨号程序应用程序或具有 READ_PHONE_STATE
权限。
Parameters | |
---|---|
showDialpad |
boolean : Brings up the in-call dialpad as part of showing the in-call screen. |
void unregisterPhoneAccount (PhoneAccountHandle accountHandle)
从系统中删除 PhoneAccount
注册。
Parameters | |
---|---|
accountHandle |
PhoneAccountHandle : A PhoneAccountHandle for the PhoneAccount to unregister. |