Skip to main content
AndroidParams controls the appearance and behaviour of the custom incoming call UI and notifications on Android. Pass an instance to the android field of CallKitParams.
import 'package:flutter_callkit_incoming/flutter_callkit_incoming.dart';

const android = AndroidParams(
  isCustomNotification: true,
  backgroundColor: '#0955fa',
  backgroundUrl: 'https://example.com/bg.jpg',
  actionColor: '#4CAF50',
  textColor: '#ffffff',
  ringtonePath: 'ringtone_default',
);

Constructor

const AndroidParams({
  bool? isCustomNotification,
  bool? isCustomSmallExNotification,
  bool? isShowLogo,
  String? logoUrl,
  bool? isShowCallID,
  String? ringtonePath,
  String? backgroundColor,
  String? backgroundUrl,
  String? actionColor,
  String? textColor,
  String? incomingCallNotificationChannelName,
  String? missedCallNotificationChannelName,
  bool? isShowFullLockedScreen,
  bool? isImportant,
  bool? isBot,
})

Fields

Notification style

isCustomNotification
bool?
default:"false"
When true, the plugin renders a fully custom notification layout instead of the system default. Recommended for a consistent look across all Android versions.
isCustomSmallExNotification
bool?
default:"false"
When true, uses a compact custom notification layout on devices where the standard custom notification is clipped. Enable this as a fallback if isCustomNotification content is cut off on certain devices.

Branding and visuals

When true, displays the app logo inside the full-screen incoming call UI. The logo image must be placed at /android/app/src/main/res/drawable-xxxhdpi/ic_logo.png.
logoUrl
String?
URL or asset path of the logo image shown inside the full-screen UI. Accepts http://..., https://..., or assets/path/to/image.png. Only used when isShowLogo is true.
isShowCallID
bool?
default:"false"
When true, displays the call id (UUID) inside both the full-screen UI and the notification.
backgroundColor
String?
default:"#0955fa"
Background color of the full-screen incoming call UI. Accepts a hex color string (e.g. "#0955fa").
backgroundUrl
String?
Image shown as the background of the full-screen incoming call UI. Accepts http://..., https://..., or assets/path/to/image.png. When set, this takes visual precedence over backgroundColor.
actionColor
String?
default:"#4CAF50"
Hex color applied to action buttons and text inside the notification (e.g. Accept / Decline button labels).
textColor
String?
default:"#ffffff"
Hex color applied to text displayed in the full-screen incoming call UI.

Ringtone

ringtonePath
String?
default:"system_ringtone_default"
File name (without extension) of the ringtone played for incoming calls. Place the audio file at /android/app/src/main/res/raw/<name>.mp3.The special value system_ringtone_default plays the device’s default ringtone.
// File: /android/app/src/main/res/raw/ringtone_default.mp3
ringtonePath: 'ringtone_default'

Notification channels

incomingCallNotificationChannelName
String?
default:"Incoming call"
Android notification channel name used for incoming call notifications. Displayed to the user in system notification settings.
missedCallNotificationChannelName
String?
default:"Missed call"
Android notification channel name used for missed call notifications. Displayed to the user in system notification settings.

Lock screen and priority

isShowFullLockedScreen
bool?
default:"true"
When true, the full-screen incoming call UI is shown on the lock screen. On Android 14+ you must also call requestFullIntentPermission and canUseFullScreenIntent to ensure the permission is granted.
isImportant
bool?
Marks the caller as important to the device user, based on interaction frequency. Maps to the isImportant field of Android’s Person API. Affects notification ranking.
isBot
bool?
Marks the caller as an automated agent or bot. Maps to the isBot field of Android’s Person API. Used primarily to identify automated tooling to the system.

Build docs developers (and LLMs) love