簡體   English   中英

Flutter:計划通知不起作用

[英]Flutter: Schedule notification not working

我正在使用 Flutter 開發一個應用程序。

為了顯示通知,我使用了flutter_local_notifications包。

我收到通知,但日程通知不起作用。

此處提出了類似的問題如何在 Flutter 中安排通知? ,但我的接收器已經在application標簽內。

這是我的清單

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.folk.gayatrimonitor">

<!-- The INTERNET permission is required for development. Specifically,
     flutter needs it to communicate with the running application
     to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>

<!-- io.flutter.app.FlutterApplication is an android.app.Application that
     calls FlutterMain.startInitialization(this); in its onCreate method.
     In most cases you can leave this as-is, but you if you want to provide
     additional functionality it is fine to subclass or reimplement
     FlutterApplication and put your custom class here. -->
<application
    android:name="io.flutter.app.FlutterApplication"
    android:label="gayatri_monitor"
    android:icon="@mipmap/ic_launcher">
    <receiver android:name="com.dexterous.flutterlocalnotifications.ScheduledNotificationReceiver" />
    <receiver android:name="com.dexterous.flutterlocalnotifications.ScheduledNotificationBootReceiver">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED"></action>
        </intent-filter>
    </receiver>
    <activity
        android:name=".MainActivity"
        android:launchMode="singleTop"
        android:theme="@style/LaunchTheme"
        android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density"
        android:hardwareAccelerated="true"
        android:windowSoftInputMode="adjustResize">
        <!-- This keeps the window background of the activity showing
             until Flutter renders its first frame. It can be removed if
             there is no splash screen (such as the default splash screen
             defined in @style/LaunchTheme). -->
        <meta-data
            android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
            android:value="true" />
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
</application>

在清單的應用程序中添加此內容可能會解決您的問題

   <service          android:name="com.folk.localnotifications.services.LocalNotificationsService"
 android:exported="false" />

請記住:com.folk 僅用於此項目。 對於不同的項目,請轉到您的清單,查看包名稱並進行相應的編輯。

我遇到了同樣的問題,但在網上找不到解決方案,但是,后來我確實發現運行flutter clean然后flutter run似乎對我有用。

您必須從根本上清理您的構建並再次重建它。 希望有幫助。

我遇到了同樣的問題,我通過為我發出的每個 android 通知創建一個單獨的通知通道來解決它,即使它們具有相同的優先級。

就我而言,我只是在initState()中添加了以下內容

var initializationSettingsAndroid =
        AndroidInitializationSettings('@mipmap/ic_launcher');
        var initializationSettingsIOS = IOSInitializationSettings();
        var initializationSettings = InitializationSettings(
            android: initializationSettingsAndroid, iOS: initializationSettingsIOS);
        flutterLocalNotificationsPlugin.initialize(
          initializationSettings,
        );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM