call_log_fetcher 0.1.0 copy "call_log_fetcher: ^0.1.0" to clipboard
call_log_fetcher: ^0.1.0 copied to clipboard

PlatformAndroid

Fetch Android call logs within a specified date range. Intended for enterprise and internal applications.

call_log_fetcher #

A Flutter plugin for fetching Android call logs within a specified date range.

This plugin is designed primarily for enterprise and internal applications.

Intended Use #

Typical use cases include:

  • CRM synchronization
  • Field sales tracking
  • Logistics communication tracking
  • Operational analytics

Platform Support #

Platform Supported
Android
iOS

Important Notice #

This plugin requires access to Android call logs through the READ_CALL_LOG permission.

Access to call logs is considered sensitive and may be restricted by app distribution platforms such as Google Play.

Developers using this plugin are responsible for ensuring compliance with:

  • Google Play policies
  • Local privacy regulations
  • User consent requirements
  • Applicable laws and regulations

Features #

  • Fetch call logs within a specified date range
  • Flutter-based permission handling
  • Typed Dart models
  • Structured exception handling
  • Native Android querying for efficient filtering

Installation #

Add the dependency to your pubspec.yaml:

dependencies:
  call_log_fetcher: ^0.1.0

Then run:

flutter pub get

Android Configuration #

Add the following permission to your application's AndroidManifest.xml:

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

File location:

android/app/src/main/AndroidManifest.xml

Usage #

Import the package:

import 'package:call_log_fetcher/call_log_fetcher.dart';

Fetch call logs:

try {
  final logs = await CallLogFetcher().getCallLog(
    CallLogQuery(
      from: DateTime.now().subtract(const Duration(days: 1)),
      to: DateTime.now(),
    ),
  );

  for (final log in logs) {
    debugPrint(
      '${log.number} - ${log.callType} - ${log.duration.inSeconds}s',
    );
  }
} on CallLogException catch (e) {
  debugPrint('${e.code}: ${e.message}');
}

Data Models #

CallLogQuery #

Property Type Description
from DateTime Start of the query range
to DateTime End of the query range

CallLogEntry #

Property Type Description
number String Phone number
callType CallType Call direction or status
date DateTime Call timestamp
duration Duration Call duration

CallType #

Supported values:

  • CallType.incoming
  • CallType.outgoing
  • CallType.missed
  • CallType.unknown

Error Handling #

The plugin throws CallLogException for expected failures.

try {
  final logs = await CallLogFetcher().getCallLog(query);
} on CallLogException catch (e) {
  switch (e.code) {
    case 'PERMISSION_DENIED':
      // Handle permission denial
      break;

    case 'INVALID_DATE_RANGE':
      // Handle invalid date range
      break;

    default:
      // Handle other errors
      break;
  }
}

Error Codes #

Code Description
PERMISSION_DENIED User denied call log permission
INVALID_DATE_RANGE The from date occurs after the to date
UNKNOWN_ERROR Unexpected error

Architecture #

Flutter Layer #

  • Permission handling
  • Input validation
  • Data mapping
  • Error handling

Native Android Layer #

  • Querying Android call logs
  • Filtering by date range
  • Returning raw data to Flutter

Limitations #

  • Android only
  • Intended for enterprise and internal applications
  • Requires READ_CALL_LOG permission
  • OEM implementations may vary
  • Access to call logs may be restricted by Google Play policies
  • No background synchronization
  • No pagination
  • No streaming support

Example Application #

A complete example application is included in the example/ directory.

Run it using:

cd example
flutter pub get
flutter run

Contributing #

Issues and pull requests are welcome.

License #

This project is licensed under the MIT License. See the LICENSE file for details.

0
likes
140
points
29
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Fetch Android call logs within a specified date range. Intended for enterprise and internal applications.

Repository (GitHub)
View/report issues

Topics

#android #call-log #enterprise #crm

License

MIT (license)

Dependencies

flutter, permission_handler, plugin_platform_interface

More

Packages that depend on call_log_fetcher

Packages that implement call_log_fetcher