foreground_service 0.1.1+1 copy "foreground_service: ^0.1.1+1" to clipboard
foreground_service: ^0.1.1+1 copied to clipboard

outdated

Flutter plugin for running dart stuff via an Android foreground service. Only barely tested on Android O, and ever so slightly on M. iOS support not planned.

foreground_service #

Create Android foreground service/notification

Prep (Android side): #

Step 1 - Create FlutterApplication subclass
i.e. (Kotlin)

class OverrideApplication: FlutterApplication(), PluginRegistry.PluginRegistrantCallback{
    override fun onCreate() {
        super.onCreate()
        ForegroundServicePlugin.setPluginRegistrantCallback(this)
    }

    override fun registerWith(p0: PluginRegistry?) {
        GeneratedPluginRegistrant.registerWith(p0)
    }
}
Step 2 - Make necessary changes to android manifest
Don't delete things willy-nilly unless you know what you're doing.
Just add lines/modify as necessary.

If you're having trouble, take a look at the /example app.

<manifest>
    <!-- add this line -->
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>

    <!-- there should already be an <application/> section -->
    <!-- just modify the value of android:name, leave everything else -->
    <application android:name=".OverrideApplication">

        <!-- add this line within the application section -->
        <service android:name="org.thebus.foreground_service.ForegroundServicePlugin"
            android:exported="false"/>
    </application>
</manifest>
Step 3
Add icon resource to project.

The icon needs to be in this specific location:

res/drawable/org_thebus_foregroundserviceplugin_notificationicon

(take a look at the /example app if you're confused)

Use (Flutter/Dart side): #

To start the service, call ForegroundService.startForegroundService([serviceFunction])

serviceFunction will then be executed periodically, but "minimum/best-effort"
i.e. it will try to make the interval between function executions *at least* that long

Doesn't work? #

As long as you're calling ForegroundService.startForegroundService,
"flutter run" should show error messages that indicate what's wrong/missing

i.e. messages beginning with E/ForegroundServicePlugin indicate an error from the plugin

Caution: #

ForegroundService.notification.get* methods may give unexpected values.

Once notifications are sent out, there's no way to retrieve the "current" data.

To work around this, the plugin keeps a version of the notification around.
This version may not have been "sent out" yet, however.

Disclaimer:

Most of the fancy stuff is shamelessly pilfered from the android_alarm_manager plugin

52
likes
0
pub points
60%
popularity

Publisher

unverified uploader

Flutter plugin for running dart stuff via an Android foreground service. Only barely tested on Android O, and ever so slightly on M. iOS support not planned.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter

More

Packages that depend on foreground_service