Flutter - 将另一个插件的服务文件引用到应用程序的清单文件中

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

我在 flutter 中制作了插件,它定义了应用程序的服务。例如

MyFirebaseMessagingService

众所周知,我们需要从AndroidManifest.xml中引用它。 我尝试在插件的 AndroidManifest 中定义服务并将此插件包含到应用程序中,但当我构建应用程序时,它不会调用。

<service android:name=".MyFirebaseMessagingService" android:exported="false" android:directBootAware="true">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>

除此之外,我尝试从应用程序的

.MyFirebaseMessagingService
引用
AndroidMainfiest
,如下所示:
com.example.myPlugin.MyfirebaseMessagingService
但它看不到它。

所以问题是,是否有办法让应用程序使用插件中的服务?

android flutter firebase dart android-manifest
1个回答
0
投票

当我做同样的事情时,我遇到了类似的问题 - 从外部插件引用 android 服务。

我查看了其他做同样事情的包,让它工作的想法是在插件的 android 部分的

AndroidManifest
文件中定义你的服务(在
{your_plugin_directory}/android/src/main/AndroidManifest.xml
中)。 执行此操作后,您将能够使用该包在应用程序中引用该服务。

根据您的情况,将以下内容添加到

{your_plugin_directory}/android/src/main/AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myPlugin">
    <application>
        <service
            android:name=".MyFirebaseMessagingService"
            android:enabled="true"
            android:exported="false"
            android:directBootAware="true"/>
    </application>
</manifest>

然后在您的应用程序中

AndroidManifest
,声明服务如下:

<service android:name="com.example.myPlugin.MyfirebaseMessagingService"/>

灵感:

The Flutter Background Service
包=>https://github.com/ekasetiawans/flutter_background_service/blob/master/packages/flutter_background_service_android/android/src/main/AndroidManifest.xml

我希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.