Flutter开发中如何解决小米手机桌面角标不显示的问题

在Flutter开发中,我的应用在小米手机桌面上无法显示消息角标(红点数字提醒)。其他品牌手机正常,只有MIUI系统存在这个问题。已尝试过官方badge插件和部分第三方方案,但依然不生效。请问:

  1. 小米是否对角标功能有特殊限制?
  2. 针对MIUI系统需要额外配置哪些权限或适配代码?
  3. 是否有可靠的开源库或具体实现案例可参考?
2 回复

AndroidManifest.xml中添加角标权限,并在代码中使用flutter_app_badger插件动态更新角标。确保小米设备开启“显示桌面图标角标”权限。

更多关于Flutter开发中如何解决小米手机桌面角标不显示的问题的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter开发中,小米手机桌面角标不显示的问题通常需要针对MIUI系统进行特殊适配。以下是解决方案:

1. 添加依赖

pubspec.yaml 中添加角标插件:

dependencies:
  flutter_app_badger: ^2.0.0

2. 配置Android权限

android/app/src/main/AndroidManifest.xml 中添加权限:

<uses-permission android:name="com.majeur.launcher.permission.UPDATE_BADGE"/>
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE"/>
<uses-permission android:name="android.permission.READ_APP_BADGE"/>

3. MIUI特殊配置

android/app/src/main/AndroidManifest.xml<application> 标签内添加:

<meta-data
    android:name="com.miui.sdk.permission.SET_BADGE"
    android:value="true" />

4. 代码实现

import 'package:flutter_app_badger/flutter_app_badger.dart';

// 设置角标
void setBadge(int count) async {
  if (await FlutterAppBadger.isAppBadgeSupported()) {
    FlutterAppBadger.updateBadgeCount(count);
  }
}

// 移除角标
void removeBadge() {
  FlutterAppBadger.removeBadge();
}

5. 注意事项

  • 部分MIUI版本需要用户手动开启应用通知权限
  • 在应用设置中确保允许显示桌面角标
  • 测试时建议使用真机,模拟器可能不支持

6. 替代方案

如果上述方法无效,可以考虑使用其他插件:

dependencies:
  badges: ^2.0.3

建议在实际使用时进行充分测试,因为不同MIUI版本可能存在差异。

回到顶部