ConnectionService 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
应由任何应用实现的抽象服务: <ol><li>可以进行电话呼叫(VoIP 或其他),并希望这些呼叫集成到内置手机应用中。
[Android.Runtime.Register("android/telecom/ConnectionService", ApiSince=23, DoNotGenerateAcw=true)]
public abstract class ConnectionService : Android.App.Service
[<Android.Runtime.Register("android/telecom/ConnectionService", ApiSince=23, DoNotGenerateAcw=true)>]
type ConnectionService = class
inherit Service
- 继承
- 属性
注解
应由任何应用实现的抽象服务: <ol><li>可以进行电话呼叫(VoIP 或其他),并希望这些呼叫集成到内置手机应用中。 称为 b 系统托管</b。<>ConnectionService
></li><li>是独立的呼叫应用,不希望其呼叫集成到内置手机应用中。 称为 b 自我管理</b。<>ConnectionService
></li></ol> 实现后,ConnectionService
需要执行以下步骤,以便 Telecom 绑定到它:
1. AndroidManifest.xml<br/ 中的注册>
<service android:name="com.example.package.MyConnectionService"
android:label="@string/some_label_for_my_connection_service"
android:permission="android.permission.BIND_TELECOM_CONNECTION_SERVICE">
<intent-filter>
<action android:name="android.telecom.ConnectionService" />
</intent-filter>
</service>
2. 注册PhoneAccount
方式。<TelecomManager
br/> 请参阅PhoneAccount
并TelecomManager#registerPhoneAccount
了解详细信息。
在 Telecom 绑定到系统之前,必须在手机应用设置中由用户启用系统托管 ConnectionService
s。 自管理 ConnectionService
必须在其清单中声明权限, android.Manifest.permission#MANAGE_OWN_CALLS
然后电信才会绑定到它们。
当用户在手机应用设置或授予权限中注册并启用后,当电信希望ConnectionService
拨打呼叫或服务指示有传入呼叫TelecomManager#addNewIncomingCall(PhoneAccountHandle, Bundle)
时,电信将绑定到ConnectionService
实现。 ConnectionService
然后,该函数可以期望调用#onCreateIncomingConnection(PhoneAccountHandle, ConnectionRequest)
对象,或者#onCreateOutgoingConnection(PhoneAccountHandle, ConnectionRequest)
应在其中提供对象的新实例Connection
。 通过此 Connection
对象,电信接收状态更新和 ConnectionService
接收呼叫命令,例如应答、拒绝、保留和断开连接。
如果没有更多的实时呼叫,电信将取消 ConnectionService
绑定。
<h1>自托管连接服务</h1> VoIP 应用可以实现一个 ConnectionService
以确保其调用集成到 Android 平台中。 对 VoIP 应用使用电信 API 有很多好处:<处理 ul><li>Call 并发性 - 用户能够在不同应用和移动网络上的呼叫之间交换。</li><>li 简化音频路由 - 平台为应用提供可用的音频路由的统一列表(例如android.telecom.Connection#onAvailableCallEndpointsChanged(List)
),以及切换音频路由(例如) android.telecom.Connection#requestCallEndpointChange(CallEndpoint, Executor, OutcomeReceiver)
的标准化方法。</li><li>蓝牙集成 - 你的呼叫将通过蓝牙设备(例如汽车头和耳机)在蓝牙设备上可见且可控制。</li><>companion 设备集成 - 可穿戴设备(如实现InCallService
可选项的手表)可穿戴设备,可以选择订阅查看自管理呼叫。 与蓝牙头单元类似,可穿戴设备通常会使用通用呼叫 UX 呈现呼叫,并为用户提供基本的呼叫控件,如挂起、应答、拒绝。</li li><>汽车通话体验 - Android 支持汽车优化体验,提供在汽车中控制和查看呼叫的方法;这些体验能够利用应用提供的调用元数据。</li></ul><h2>注册电话帐户</h2> 在应用可以通过电信处理传入或传出呼叫之前,它需要向 Telecom 注册一个PhoneAccount
指示你的应用能够呼叫的平台。
你的应用应创建满足以下要求的新实例 PhoneAccount
: <ul><li>Has PhoneAccount#CAPABILITY_SELF_MANAGED
(使用 PhoneAccount.Builder#setCapabilities(int)
集)。 这向 Telecom 表示你的应用将报告呼叫,但它为调用本身提供主 UI。</li li>><提供通过PhoneAccountHandle#getId()
属性的唯一标识符PhoneAccount
。 根据 PhoneAccountHandle
文档,不应使用包含 PII 或其他敏感信息的标识符。 典型的选择是 UUID。</li/ul 你的应用应使用 TelecomManager#registerPhoneAccount(PhoneAccount)
PhoneAccount
应用。 PhoneAccount
在重新启动后保留。 可用于TelecomManager#getOwnSelfManagedPhoneAccounts()
确认已注册。PhoneAccount
你的应用通常只能注册一 PhoneAccount
个。
<h2>实现 ConnectionService</h2> 你的应用用于 TelecomManager#placeCall(Uri, Bundle)
启动新的传出呼叫并 TelecomManager#addNewIncomingCall(PhoneAccountHandle, Bundle)
报告新的传入呼叫。 调用这些 API 会导致电信堆栈绑定到应用的 ConnectionService
实现。 电信将通知应用当前无法处理呼叫请求(即可能存在正在进行的紧急呼叫,这意味着你的应用当前不允许处理呼叫),或者它会要求你的应用创建一个新实例 Connection
来表示应用中的呼叫。
你的应用应实现以下ConnectionService
方法:<ul><li>ConnectionService#onCreateOutgoingConnection(PhoneAccountHandle, ConnectionRequest)
- 由 Telecom 调用,要求应用进行新的Connection
调用,以表示通过TelecomManager#placeCall(Uri, Bundle)
请求的应用的传出呼叫。</li>ConnectionService#onCreateOutgoingConnectionFailed(PhoneAccountHandle, ConnectionRequest)
<>< - 由 Telecom 调用以通知你的应用,目前无法处理它报告的TelecomManager#placeCall(Uri, Bundle)
呼叫。 你的应用不应在当前时间发出呼叫。</li>>ConnectionService#onCreateIncomingConnection(PhoneAccountHandle, ConnectionRequest)
< - 由 Telecom 调用,要求你的应用进行一Connection
个新来表示通过TelecomManager#addNewIncomingCall(PhoneAccountHandle, Bundle)
报告的应用的传入呼叫。</li>ConnectionService#onCreateIncomingConnectionFailed(PhoneAccountHandle, ConnectionRequest)
<> - 由 Telecom 调用以通知你的应用,目前无法处理它报告的TelecomManager#addNewIncomingCall(PhoneAccountHandle, Bundle)
传入呼叫。 你的应用不应发布新的传入呼叫通知,并且应以无提示方式拒绝呼叫。</li></ul>
<h2>实现 Connection</h2> 你的应用应扩展类来 Connection
表示应用中的调用。 创建新实例Connection
时,应确保对另ConnectionService
一方返回的新Connection
实例设置以下属性: <ul><li>Connection#setAddress(Uri, int)
- 标识符。 对于用户电话号码的应用,Uri
可以是PhoneAccount#SCHEME_TEL
表示电话号码的 URI。</li><>Connection#setCallerDisplayName(String, int)
- 对方的显示名称。 这是蓝牙设备和其他呼叫图面(如可穿戴设备)上显示的内容。 对于不使用电话号码来标识呼叫方或呼叫方的呼叫,这一点尤其重要。</li><Connection#setConnectionProperties(int)
> - 确保你设置为Connection#PROPERTY_SELF_MANAGED
标识由应用处理调用的平台。</li><>Connection#setConnectionCapabilities(int)
- 如果你的应用支持进行非活动呼叫(即持有呼叫),则应获取Connection#CAPABILITY_SUPPORT_HOLD
并Connection#CAPABILITY_HOLD
指示你呼叫可能用于并发呼叫方案的平台。</li><Connection#setAudioModeIsVoip(boolean)
> - 设置为true
确保平台知道你的呼叫是 VoIP 呼叫。</li li>><对于新创建的Connection
实例,请勿更改呼叫Connection#setActive()
使用的状态,Connection#setOnHold()
直到呼叫添加到 Telecom(即已通过ConnectionService#onCreateOutgoingConnection(PhoneAccountHandle, ConnectionRequest)
或ConnectionService#onCreateIncomingConnection(PhoneAccountHandle, ConnectionRequest)
返回呼叫)。 </li></ul>
<h2>如何拨打传出呼叫</h2> 当应用想要拨打传出呼叫时。TelecomManager#placeCall(Uri, Bundle)
应指定一个Uri
来标识要放置呼叫的人员,并指定PhoneAccountHandle
与在参数中使用Bundle
的应用TelecomManager#EXTRA_PHONE_ACCOUNT_HANDLE
注册的应用关联的PhoneAccount
调用。
电信将绑定到应用的 ConnectionService
实现和调用: <ul><li>ConnectionService#onCreateOutgoingConnection(PhoneAccountHandle, ConnectionRequest)
- ConnectionRequest#getAddress()
将匹配你在拨打呼叫时指定的地址。 应返回应用Connection
类的新实例来表示传出调用。</li>ConnectionService#onCreateOutgoingConnectionFailed(PhoneAccountHandle, ConnectionRequest)
<> - 你的应用目前不应拨打呼叫;呼叫应取消,并且用户通知无法拨打呼叫。</li></ul>
新的传出呼叫将以状态启动 Connection#STATE_DIALING
。 此状态表示你的应用正在将调用连接到另一方。
当对方接听呼叫(或成功设置)后,你的应用应调用 Connection#setActive()
以通知 Telecom 呼叫现在处于活动状态。
<h2>如何添加传入呼叫</h2> 当应用收到传入呼叫时,它应调用 TelecomManager#addNewIncomingCall(PhoneAccountHandle, Bundle)
。 将 PhoneAccountHandle
参数设置为 PhoneAccountHandle
与应用 PhoneAccount
关联的参数。
电信将绑定到应用的ConnectionService
实现和调用:<ul><li>ConnectionService#onCreateIncomingConnection(PhoneAccountHandle, ConnectionRequest)
- 应返回应用Connection
类的新实例来表示传入呼叫。</li>ConnectionService#onCreateIncomingConnectionFailed(PhoneAccountHandle, ConnectionRequest)
<> - 你的应用目前不应收到呼叫;呼叫应以无提示方式拒绝;用户可能会收到错过的呼叫通知。</li></ul>
新的传入呼叫将从状态开始 Connection#STATE_RINGING
。 此状态指示你的应用有一个新的传入呼叫挂起。 电信不会播放铃声或发布应用的通知。 由你的应用通过关联的铃声发布传入呼叫通知。 当应用可以发布其传入呼叫通知时,电信将呼叫Connection#onShowIncomingCallUi()
Connection
。 有关如何发布通知的详细信息,请参阅 Connection#onShowIncomingCallUi() the docs
。
传入呼叫通知(或全屏 UI)通常具有用户选择的“应答”和“拒绝”操作。 当应用收到“应答”或“拒绝” android.app.PendingIntent
时,应拨打电话 Connection#setActive()
通知 Telecom 已接听呼叫,或 Connection#setDisconnected(DisconnectCause)
通知 Telecom 呼叫被拒绝。 如果调用被拒绝,请提供一个 DisconnectCause
实例 DisconnectCause#REJECTED
,然后调用 Connection#destroy()
。
除了处理通过通知操作应答或拒绝呼叫的请求外,你的应用还应在应用Connection
上实现Connection#onAnswer(int)
和Connection#onAnswer()
方法。 如果用户通过蓝牙设备或其他设备(如可穿戴设备或汽车呼叫 UX)接听呼叫,则会引发这些内容。 作为响应,你的应用应呼叫 Connection#setActive()
以通知 Telecom 已接听呼叫。
此外,你的应用应实现 Connection#onReject()
以处理通过蓝牙或其他呼叫图面引发的呼叫的请求。 应用应在此示例中调用Connection#setDisconnected(DisconnectCause)
并提供其DisconnectCause
DisconnectCause#REJECTED
实例。
<h2>结束呼叫</h2> 当正在进行的活动呼叫(传入或传出)结束时,你的应用负责通知 Telecom 呼叫已结束。
应用调用: <ul><li>Connection#setDisconnected(DisconnectCause)
- 这会通知 Telecom 呼叫已终止。 应提供一个新实例,DisconnectCause
DisconnectCause#LOCAL
或者DisconnectCause#REMOTE
指示调用断开连接的发生位置。 DisconnectCause#LOCAL
指示调用在当前设备上的应用中终止(即通过用户操作),其中DisconnectCause#REMOTE
指示呼叫在远程设备上终止。</li><>Connection#destroy()
- 这会通知 Telecom 可以清理呼叫实例。 完成呼叫后,应始终调用此调用。</li></ul>
与应答传入呼叫类似,断开呼叫连接的请求可能源自应用外部。 可以通过实现 Connection#onDisconnect()
这些操作来处理这些操作。 你的应用应使用实例DisconnectCause
和原因DisconnectCause#LOCAL
来Connection#setDisconnected(DisconnectCause)
调用,以指示你的应用已根据用户的请求断开呼叫的连接。
<h2>保留和取消保留呼叫</h2> 当应用指定 Connection#CAPABILITY_SUPPORT_HOLD
并在 Connection#CAPABILITY_HOLD
实例上 Connection
时,它告知 Telecom 可以将呼叫置于暂停状态或“保留”状态(如果需要)。 如果你的应用支持保留其呼叫,则用户可以在应用中的呼叫和另一个应用或移动网络上的可保留呼叫之间切换。 如果你的应用不支持保留其呼叫,则当用户选择在另一个应用或移动网络上接听传入呼叫时,你可能会收到断开与 Telecom 呼叫的连接的请求;这可确保用户一次只能进行一次呼叫。
你的应用可以自由更改使用和活动状态Connection#setOnHold()
Connection#setActive()
之间的调用。
你的应用可能会收到来自电信的请求,以通过 Connection#onHold()
和 Connection#onUnhold()
取消保留呼叫。 如果用户通过另一个呼叫图面(如蓝牙)请求此操作,或者用户应答或切换到其他应用或移动网络上的呼叫,电信可能会要求应用保留或取消保留 Connection
其操作。
当你的应用收到 Connection#onHold()
它必须呼叫 Connection#setOnHold()
以通知 Telecom 已成功保存呼叫时。
当你的应用收到 Connection#onUnhold()
它必须呼叫 Connection#setActive()
以通知 Telecom 已成功恢复呼叫时。
适用于 . 的 android.telecom.ConnectionService
Java 文档
本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。
构造函数
ConnectionService() |
应由任何应用实现的抽象服务: <ol><li>可以进行电话呼叫(VoIP 或其他),并希望这些呼叫集成到内置手机应用中。 |
ConnectionService(IntPtr, JniHandleOwnership) |
应由任何应用实现的抽象服务: <ol><li>可以进行电话呼叫(VoIP 或其他),并希望这些呼叫集成到内置手机应用中。 |
字段
AccessibilityService |
|
AccountService |
|
ActivityService |
|
AlarmService |
|
AppOpsService |
用于 |
AppSearchService |
|
AppwidgetService |
|
AudioService |
用于 |
BatteryService |
|
BindAllowActivityStarts |
已过时.
|
BindExternalServiceLong |
的工作方式与 |
BindNotPerceptible |
已过时.
|
BindSharedIsolatedProcess |
已过时.
标志: |
BiometricService |
|
BlobStoreService |
|
BluetoothService |
|
BugreportService |
用于捕获 bug 报告的服务。 (继承自 Context) |
CameraService |
|
CaptioningService |
用于 |
CarrierConfigService |
用于 |
ClipboardService |
|
CompanionDeviceService |
|
ConnectivityDiagnosticsService |
用于 |
ConnectivityService |
用于 |
ConsumerIrService |
用于 |
CredentialService |
|
CrossProfileAppsService |
用于 |
DeviceIdDefault |
默认设备 ID,即主设备(非虚拟)设备的 ID。 (继承自 Context) |
DeviceIdInvalid |
设备 ID 无效。 (继承自 Context) |
DeviceLockService |
|
DevicePolicyService |
|
DisplayHashService |
|
DisplayService |
|
DomainVerificationService |
|
DownloadService |
与 |
DropboxService |
|
EuiccService |
|
FileIntegrityService |
|
FingerprintService |
用于 |
GameService |
|
GrammaticalInflectionService |
|
HardwarePropertiesService |
用于 |
HealthconnectService |
|
InputMethodService |
用于 |
InputService |
|
IpsecService |
|
JobSchedulerService |
|
KeyguardService |
|
LauncherAppsService |
用于 |
LayoutInflaterService |
用于 |
LocaleService |
|
LocationService |
与 |
MediaCommunicationService |
|
MediaMetricsService |
用于 |
MediaProjectionService |
用于 |
MediaRouterService |
|
MediaSessionService |
用于 |
MidiService |
用于 |
NetworkStatsService |
用于 |
NfcService |
|
NotificationService |
与 |
NsdService |
用于 |
OverlayService |
|
PeopleService |
|
PerformanceHintService |
|
PowerService |
|
PrintService |
|
ReceiverExported |
已过时.
|
ReceiverNotExported |
已过时.
|
ReceiverVisibleToInstantApps |
已过时.
标志: |
RestrictionsService |
用于 |
RoleService |
用于 |
SearchService |
|
SensorService |
|
ServiceInterface |
必须 |
ShortcutService |
|
StatusBarService |
|
StopForegroundDetach |
已过时.
选择器: |
StopForegroundLegacy |
选择器: |
StopForegroundRemove |
已过时.
选择器: |
StorageService |
用于 |
StorageStatsService |
|
SystemHealthService |
|
TelecomService |
|
TelephonyImsService |
|
TelephonyService |
用于 |
TelephonySubscriptionService |
用于 |
TextClassificationService |
|
TextServicesManagerService |
用于 |
TvInputService |
|
TvInteractiveAppService |
|
UiModeService |
用于 |
UsageStatsService |
|
UsbService |
用于 |
UserService |
用于 |
VibratorManagerService |
用于 |
VibratorService |
用于 |
VirtualDeviceService |
用于 |
VpnManagementService |
|
WallpaperService |
用于 |
WifiAwareService |
用于 |
WifiP2pService |
用于 |
WifiRttRangingService |
与 |
WifiService |
用于 |
WindowService |
|
属性
AllConferences |
返回承担此 |
AllConnections |
返回承担此 |
Application |
返回拥有此服务的应用程序。 (继承自 Service) |
ApplicationContext |
返回当前进程的单个全局 Application 对象的上下文。 (继承自 ContextWrapper) |
ApplicationInfo |
返回此上下文包的完整应用程序信息。 (继承自 ContextWrapper) |
Assets |
返回应用程序的包的 AssetManager 实例。 (继承自 ContextWrapper) |
AttributionSource |
应由任何应用实现的抽象服务: <ol><li>可以进行电话呼叫(VoIP 或其他),并希望这些呼叫集成到内置手机应用中。 (继承自 Context) |
AttributionTag |
属性可用于复杂应用中,以逻辑方式分隔应用的各个部分。 (继承自 Context) |
BaseContext | (继承自 ContextWrapper) |
CacheDir |
返回文件系统上特定于应用程序的缓存目录的绝对路径。 (继承自 ContextWrapper) |
Class |
返回此 |
ClassLoader |
返回可用于检索此包中的类的类加载程序。 (继承自 ContextWrapper) |
CodeCacheDir |
返回文件系统上用于存储缓存代码的应用程序特定缓存目录的绝对路径。 (继承自 ContextWrapper) |
ContentResolver |
返回应用程序的包的 ContentResolver 实例。 (继承自 ContextWrapper) |
DataDir |
应由任何应用实现的抽象服务: <ol><li>可以进行电话呼叫(VoIP 或其他),并希望这些呼叫集成到内置手机应用中。 (继承自 ContextWrapper) |
DeviceId |
获取与此上下文关联的设备 ID。 (继承自 Context) |
Display |
获取与此上下文关联的显示。 (继承自 Context) |
ExternalCacheDir |
返回主外部文件系统上目录的绝对路径(位于应用程序可以放置其拥有的缓存文件的某个位置 ExternalStorageDirectory )。 (继承自 ContextWrapper) |
FilesDir |
返回存储使用 OpenFileOutput(String, FileCreationMode) 文件创建的文件系统上的目录的绝对路径。 (继承自 ContextWrapper) |
ForegroundServiceType |
如果服务已通过调用成为前台服务 |
Handle |
基础 Android 实例的句柄。 (继承自 Object) |
IsDeviceProtectedStorage |
应由任何应用实现的抽象服务: <ol><li>可以进行电话呼叫(VoIP 或其他),并希望这些呼叫集成到内置手机应用中。 (继承自 ContextWrapper) |
IsRestricted |
指示此上下文是否受到限制。 (继承自 Context) |
IsUiContext |
如果 |
JniIdentityHashCode |
应由任何应用实现的抽象服务: <ol><li>可以进行电话呼叫(VoIP 或其他),并希望这些呼叫集成到内置手机应用中。 (继承自 Object) |
JniPeerMembers |
应由任何应用实现的抽象服务: <ol><li>可以进行电话呼叫(VoIP 或其他),并希望这些呼叫集成到内置手机应用中。 |
MainExecutor |
|
MainLooper |
返回当前进程的主线程的 Looper。 (继承自 ContextWrapper) |
NoBackupFilesDir |
返回文件系统上目录的绝对路径,类似于 FilesDir. (继承自 ContextWrapper) |
ObbDir |
返回可在其中找到此应用程序的 OBB 文件(如果有)的主外部存储目录。 (继承自 ContextWrapper) |
OpPackageName |
返回应该用于 |
PackageCodePath |
返回此上下文的主要 Android 包的完整路径。 (继承自 ContextWrapper) |
PackageManager |
返回 PackageManager 实例以查找全局包信息。 (继承自 ContextWrapper) |
PackageName |
返回此应用程序的包的名称。 (继承自 ContextWrapper) |
PackageResourcePath |
返回此上下文的主要 Android 包的完整路径。 (继承自 ContextWrapper) |
Params |
返回创建此上下文时所使用的参数集(如果通过该 |
PeerReference |
应由任何应用实现的抽象服务: <ol><li>可以进行电话呼叫(VoIP 或其他),并希望这些呼叫集成到内置手机应用中。 (继承自 Object) |
Resources |
返回应用程序的包的资源实例。 (继承自 ContextWrapper) |
Theme |
返回与此上下文关联的 Theme 对象。 (继承自 ContextWrapper) |
ThresholdClass |
应由任何应用实现的抽象服务: <ol><li>可以进行电话呼叫(VoIP 或其他),并希望这些呼叫集成到内置手机应用中。 |
ThresholdType |
应由任何应用实现的抽象服务: <ol><li>可以进行电话呼叫(VoIP 或其他),并希望这些呼叫集成到内置手机应用中。 |
Wallpaper | (继承自 ContextWrapper) |
WallpaperDesiredMinimumHeight | (继承自 ContextWrapper) |
WallpaperDesiredMinimumWidth | (继承自 ContextWrapper) |
方法
显式接口实现
IJavaPeerable.Disposed() |
应由任何应用实现的抽象服务: <ol><li>可以进行电话呼叫(VoIP 或其他),并希望这些呼叫集成到内置手机应用中。 (继承自 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
应由任何应用实现的抽象服务: <ol><li>可以进行电话呼叫(VoIP 或其他),并希望这些呼叫集成到内置手机应用中。 (继承自 Object) |
IJavaPeerable.Finalized() |
应由任何应用实现的抽象服务: <ol><li>可以进行电话呼叫(VoIP 或其他),并希望这些呼叫集成到内置手机应用中。 (继承自 Object) |
IJavaPeerable.JniManagedPeerState |
应由任何应用实现的抽象服务: <ol><li>可以进行电话呼叫(VoIP 或其他),并希望这些呼叫集成到内置手机应用中。 (继承自 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
应由任何应用实现的抽象服务: <ol><li>可以进行电话呼叫(VoIP 或其他),并希望这些呼叫集成到内置手机应用中。 (继承自 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
应由任何应用实现的抽象服务: <ol><li>可以进行电话呼叫(VoIP 或其他),并希望这些呼叫集成到内置手机应用中。 (继承自 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
应由任何应用实现的抽象服务: <ol><li>可以进行电话呼叫(VoIP 或其他),并希望这些呼叫集成到内置手机应用中。 (继承自 Object) |
扩展方法
JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
JavaCast<TResult>(IJavaObject) |
应由任何应用实现的抽象服务: <ol><li>可以进行电话呼叫(VoIP 或其他),并希望这些呼叫集成到内置手机应用中。 |
GetJniTypeName(IJavaPeerable) |
应由任何应用实现的抽象服务: <ol><li>可以进行电话呼叫(VoIP 或其他),并希望这些呼叫集成到内置手机应用中。 |