Edit android manifest correctly

Viewed 969

I'm trying to use the flutter_foreground_plugin for my project but I'm having difficulty understanding how to edit the android manifest file.

these are the required edits: enter image description here

These are my interpretations of said edits: enter image description here

What am I doing wrong? I get the error

error: FlutterForegroundPlugin() has private access in FlutterForegroundPlugin
    flutterEngine.getPlugins().add(new changjoopark.com.flutter_foreground_plugin.FlutterForegroundPlugin());
2 Answers

Open FlutterForegroundPlugin.java change from private FlutterForegroundPlugin() {} to public FlutterForegroundPlugin() {}

This AndroidManifest.xml can help you how to configure your project.

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

    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>

    <!-- 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="Flutter ForegroundService Example"
        android:icon="@mipmap/ic_launcher">
        <activity
            android:name=".MainActivity"
            android:launchMode="singleTop"
            android:theme="@style/LaunchTheme"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            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>

        <service android:name="changjoopark.com.flutter_foreground_plugin.FlutterForegroundService"/>
    </application>
    <uses-sdk
        android:minSdkVersion="23"
        tools:overrideLibrary="changjoopark.com.flutter_foreground_plugin" />
</manifest>

You can also try to download this example and try to run it on your machine so you can clear your doubts.

Thank you.

Related