跳转到正文

Android

GitHub

在 Android 上,该插件会推送一条高优先级的来电通知;在平台和用户设置允许的情况下,还可以唤起全屏 Activity。

插件清单 (manifest) 已包含:

<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" />

安装完成后, cap sync 即可将该配置合并到你的宿主 App 中。

请在 onboarding 期间或在依赖来电界面展示前调用以下方法:

import { IncomingCallKit } from '@capgo/capacitor-incoming-call-kit';
await IncomingCallKit.requestPermissions();
await IncomingCallKit.requestFullScreenIntentPermission();
  • requestPermissions() 在 Android 13 及更高版本上请求通知权限。
  • requestFullScreenIntentPermission() 在需要时打开 Android 14 及更高版本的全屏意图 (full-screen intents) 设置页面。
import { IncomingCallKit } from '@capgo/capacitor-incoming-call-kit';
await IncomingCallKit.showIncomingCall({
callId: 'call-42',
callerName: 'Ada Lovelace',
appName: 'Capgo Phone',
timeoutMs: 45_000,
android: {
channelId: 'calls',
channelName: 'Incoming Calls',
showFullScreen: true,
isHighPriority: true,
accentColor: '#0F766E',
},
});
  • channelId: 通知渠道的标识符
  • channelName: 用户可见的渠道名称
  • showFullScreen: 请求全屏 Activity
  • isHighPriority: 确保通知在响铃流程中具有足够的干扰性
  • accentColor: 为兼容的通知界面着色
  • ringtoneUri: 指向自定义 Android 铃声资源或 URI
  • 全屏展示为尽力而为模式。如果设备或用户设置阻止了全屏,Android 仍会显示来电通知。
  • 超时处理为尽力而为模式。插件会追踪 timeoutMs 并发出 callTimedOut,但您的后端仍应在服务端处理漏接电话。
  • 接听、拒绝和结束操作会通过 Capacitor 监听器传回,以便您的应用可以加入或清理真实的通话会话。

使用 Android 推送或您的 SDK 进行传输,然后让此插件处理原生响铃 UI 的最后一步。请将以下职责保留在插件之外:

  • FCM 注册与 token 管理
  • 媒体会话生命周期
  • 后端通话状态
  • 重试与漏接电话的业务逻辑

如果你正在使用 Android 来规划原生媒体和界面行为,并将其与 使用 @capgo/capacitor-incoming-call-kit 用于“使用 @capgo/capacitor-incoming-call-kit”中的原生功能, 使用 @capgo/capacitor-live-activities 用于使用 @capgo/capacitor-live-activities 时的原生能力, @capgo/capacitor-live-activities 在 @capgo/capacitor-live-activities 中的实现细节, 使用 @capgo/capacitor-video-player 有关使用 @capgo/capacitor-video-player 时的原生能力,以及 @capgo/capacitor-video-player 关于 @capgo/capacitor-video-player. 中的实现细节