Skip to main content
Flutter Callkit Incoming is a Flutter plugin that displays a native incoming call UI on both Android and iOS. On iOS it uses Apple’s CallKit framework to render the system-level call screen. On Android it renders a custom full-screen notification that works across foreground, background, and terminated app states.

Platform behaviour

PlatformImplementationMinimum requirement
iOSNative CallKit frameworkReal device only — CallKit does not run on the simulator
AndroidCustom full-screen notificationAPI level 21 (Android 5.0)
iOS CallKit only works on a real device. Testing on the iOS Simulator will not show any incoming call UI.
Starting with v2.5.0, the Android build requires Java SDK 17 or later. Make sure your development environment and CI pipeline use jvmToolchain(17).

Current version

The latest stable release is 3.0.0, published on pub.dev. Release highlights for 3.0.0:
  • Android now uses Plugin DSL
  • Native Android callback support via CallkitEventCallback
  • Improved plugin lifecycle management

Key features

Incoming call UI

Show a full-screen incoming call screen on Android and a native CallKit sheet on iOS, triggered from any app state.

Outgoing call support

Start outgoing calls that appear in the iOS phone history and trigger the correct lifecycle events on both platforms.

Customisable Android UI

Set background colour, background image, avatar, ringtone, action colours, text colours, and notification channel names for Android.

iOS CallKit integration

Configure handle type, audio session, DTMF, hold, grouping, and video support through native CallKit options.

Event stream

Listen to a broadcast stream of call lifecycle events: incoming, accepted, declined, ended, timed-out, and more.

PushKit / VoIP support

Integrates with iOS PushKit so your app can wake from a terminated state and display an incoming call screen.

Next steps

Installation

Add the package to your Flutter project and configure the Java SDK version.

Quickstart

Show your first incoming call screen in minutes with a complete working example.

Build docs developers (and LLMs) love