如何在Android设备上默认启用通知?

问题描述 投票:0回答:1

我最近实现了 flutter_local_notifications 并且通知工作正常。但有一个问题是默认情况下通知不会显示为弹出窗口。默认情况下,该选项在通知设置中处于禁用状态。

我的代码是这样的:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  ServiceContainer.initialize(Injector());

  SystemChrome.setPreferredOrientations(
      [DeviceOrientation.portraitUp, DeviceOrientation.portraitDown]);

  await PreferenceHelper.create();
  FirebaseMessaging messaging = FirebaseMessaging.instance;
  await messaging.requestPermission(
    alert: true,
    badge: true,
    sound: true,
    provisional: false,
  );
  await FirebaseMessaging.instance.requestPermission();

  await FirebaseMessaging.instance.setForegroundNotificationPresentationOptions(
    alert: true,
    badge: true,
    sound: true,
  );

  SystemChrome.setSystemUIOverlayStyle(
      const SystemUiOverlayStyle(statusBarColor: Colors.transparent));

  runApp(const App());
  await [Permission.storage, Permission.notification].request();
}
android flutter dart notifications android-notifications
1个回答
1
投票

您需要请求通知权限

在 Android 13 或更高版本上请求权限

从 Android 13(API 级别 33)开始,应用程序现在能够显示提示,用户可以在其中决定是否要授予应用程序显示通知的权限。如需进一步了解此问题,请阅读https://developer.android.com/guide/topics/ui/notifiers/notification-permission。为了支持此应用程序,需要将其应用程序定位到 Android 13 或更高版本,并且编译 SDK 版本需要至少为 33 (Android 13)。例如,要面向 Android 13,请更新应用程序的 build.gradle 文件,将 targetSdkVersion 设为 33。然后,应用程序可以调用以下代码来请求权限,其中 requestPermission 方法与 AndroidFlutterLocalNotificationsPlugin 类(即 AndroidFlutterLocalNotificationsPlugin 类的 Android 实现)相关联。插件)

这就是你要做的。

FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
        FlutterLocalNotificationsPlugin();
flutterLocalNotificationsPlugin.resolvePlatformSpecificImplementation<
    AndroidFlutterLocalNotificationsPlugin>()?.
    requestNotificationsPermission();
© www.soinside.com 2019 - 2024. All rights reserved.