app_badger 0.0.1 copy "app_badger: ^0.0.1" to clipboard
app_badger: ^0.0.1 copied to clipboard

PlatformAndroid

A Flutter plugin to update app badge count on Android (including Xiaomi).

app_badger Flutter Plugin #

A Flutter plugin to manage app badge counts on different Android devices (including Xiaomi, Samsung, HTC, Sony, Huawei, OPPO, and others) using the ShortcutBadger library.

Installation #

To use the app_badger plugin in your Flutter project, add it to your pubspec.yaml file:

dependencies:
  app_badger: ^0.0.1

Then, run the following command in the terminal:

flutter pub get

Required Setup for Android #

The plugin requires specific configurations in the AndroidManifest.xml file to ensure compatibility with various device brands (Xiaomi, Samsung, HTC, Sony, Huawei, etc.).

1. Add Permissions and Receiver to AndroidManifest.xml #

To enable the badge feature on different Android devices, add the following entries inside the <application> tag in your android/app/src/main/AndroidManifest.xml file:

<receiver
    android:name="me.leolin.shortcutbadger.impl.XiaomiHomeBadger"
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.BADGE_COUNT_UPDATE" />
    </intent-filter>
</receiver>

<!-- Permissions for Xiaomi -->
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="com.android.launcher.permission.WRITE_SETTINGS" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />

<!-- Permissions for Samsung -->
<uses-permission android:name="com.sec.android.provider.badge.permission.READ" />
<uses-permission android:name="com.sec.android.provider.badge.permission.WRITE" />

<!-- Permissions for HTC -->
<uses-permission android:name="com.htc.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="com.htc.launcher.permission.UPDATE_SHORTCUT" />

<!-- Permissions for Sony -->
<uses-permission android:name="com.sonyericsson.home.permission.BROADCAST_BADGE" />
<uses-permission android:name="com.sonymobile.home.permission.PROVIDER_INSERT_BADGE" />

<!-- Permissions for Apex -->
<uses-permission android:name="com.anddoes.launcher.permission.UPDATE_COUNT" />

<!-- Permissions for Solid -->
<uses-permission android:name="com.majeur.launcher.permission.UPDATE_BADGE" />

<!-- Permissions for Huawei -->
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE" />
<uses-permission android:name="com.huawei.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="com.huawei.android.launcher.permission.WRITE_SETTINGS" />

<!-- Permissions for ZUK -->
<uses-permission android:name="android.permission.READ_APP_BADGE" />

<!-- Permissions for OPPO -->
<uses-permission android:name="com.oppo.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="com.oppo.launcher.permission.WRITE_SETTINGS" />

<!-- Permissions for EvMe -->
<uses-permission android:name="me.everything.badger.permission.BADGE_COUNT_READ" />
<uses-permission android:name="me.everything.badger.permission.BADGE_COUNT_WRITE" />

2. Additional Requirement: Notifications #

The badge count update functionality will only work if triggered by local notifications or push notifications. Therefore, make sure to trigger the badge count update when a notification is received.

  • For local notifications, you can use the flutter_local_notifications package or any other method to trigger local/push notifications.
  • For push notifications, ensure that your Firebase or other push notification service triggers the badge update when a new push notification is received.

Usage #

Update Badge Count #

To update the badge count on supported devices:

import 'package:app_badger/app_badger.dart';

void _updateBadge() {
  AppBadger.updateBadgeCount(5); // Set badge count to 5
}

Remove Badge #

To remove the badge count:

import 'package:app_badger/app_badger.dart';

void _removeBadge() {
  AppBadger.removeBadge(); // Remove badge
}

Check if Badge is Supported #

To check if the badge functionality is supported on the device:

import 'package:app_badger/app_badger.dart';

void _checkBadgeSupport() async {
  bool isSupported = await AppBadger.isBadgeSupported();
  print("Badge supported: $isSupported");
}

Troubleshooting #

  • Badge Not Showing on Xiaomi Devices: Make sure to add the Xiaomi receiver and permissions in the AndroidManifest.xml as mentioned above.
  • Badge Not Working: Badge counts may not be supported on all devices, and some device manufacturers require specific permissions or settings.
  • Notification Badge Only Works After Notification: Ensure that your badge count update is triggered by a notification, whether it’s a local notification or a push notification.

Contributing #

Feel free to open issues or pull requests for any features or bug fixes.

Let me know if you need further modifications or explanations!

4
likes
150
points
148
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter plugin to update app badge count on Android (including Xiaomi).

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on app_badger

Packages that implement app_badger