F

flutter_callkit_aurora

A Flutter plugin to show incoming call in your Flutter app

EN | RU

flutter_callkit_aurora

The original ReadMe of the flutter_callkit_incoming plugin: README

Description

This plugin is an implementation of the flutter_callkit_incoming package for the Aurora operating system. This plugin is used to show incoming and outgoing call in your Flutter app.

ReadMe of the usage example: README

Quick launch

final callKitParams = CallKitParams(
    id: "unique-call-id-12345",
    nameCaller: 'John Doe',
    handle: '1234567890',
    normalHandle: 1111111111,
    type: 0,
    duration: 5000,
    appName: 'My Awesome App',
    missedCallNotification: const NotificationParams(
        id: null,
        showNotification: true,
        isShowCallback: true,
        subtitle: 'Missed call',
        callbackText: 'Call back',
        count: null,
    ),
    callingNotification: const NotificationParams(
        id: null,
        showNotification: true,
        isShowCallback: true,
        subtitle: 'Calling',
        callbackText: 'Call back',
        count: null,
    ),
    extra: <String, dynamic>{
        'useDurationIncoming': false,
        'useDurationOutgoing': false,
    },
);

await FlutterCallkitIncoming.showCallkitIncoming(callKitParams);

Features

  • Incoming Call Display: Show a native-style incoming call screen on Aurora OS with caller details and action buttons.
  • Outgoing Call Support: Initiate and display outgoing call.
  • Missed Call Notifications: Display missed call notification.
  • Mute and umnute micro: Microphone status managing during the call.
  • Disconnect Calls: End all active calls.
  • Resource Management: When the call status changes to "Active", "Dialing", or "Held", AudioResource is used to request audio resources. These resources are released when the call status becomes "Disconnected". This helps to avoid issues with audio volume changes during calls. The acquireAudioResource and releaseResources methods of the ResourceManager class are used for this. More details: ResourceManager.h. Interaction with these methods occurs automatically in the Dart part of the plugin.

Contents

Build and Install

pubspec.yaml

dependencies:
  flutter_callkit_incoming: ^2.5.2
  flutter_callkit_aurora:
        path: https://developer.auroraos.ru/git/flutter/flutter-community-plugins/flutter_callkit_aurora.git

main.cpp

#include <flutter/flutter_compatibility_qt.h>  // <-- enable QT
#include "generated_plugin_registrant.h"

int main(int argc, char* argv[]) {
    aurora::FlutterApp app(argc, argv);
    aurora::EnableQtCompatibility();  // <-- enable QT
    return app.exec();
}

Detailed description

Not implemented methods.

Plugin method Description Reason
requestNotificationPermission Request notification permission There is no need to implement it due to the system features: permissions are obtained when the application is launched
requestFullIntentPermission Request notification permission There is no need to implement it due to the system features: permissions are obtained when the application is launched
getDevicePushTokenVoIP Push token for iOS There is no need for implementation: the Flutter_local_notifications_aurora plugin allows you to generate Push notifications without registering in the service
hideCallkitIncoming Hide call notification The OS API has a limitation
silenceEvents Disable receiving events from C++ Events are not used
unsilenceEvents Enable receiving events from C++ Events are not used

Compatibility

  • Aurora OS: 5.1.3+
  • Audio playback while active voice call is not compatible with the emulator

Usage Rules

  • The source code of the project is provided under the license, that allows it to be used in third-party applications.
  • To participate in the development of the project, please read the contributor agreement. If you plan to contribute your own source code to the project, you will need to accept the CLA agreement.
  • For information about contributors see AUTHORS.
  • Code of conduct is a current set of rules of the Open Mobile Platform which informs you how we expect the members of the community will interact while contributing and communicating.