如何在 Flutter 插件中注册 Android 服务

How do you register an Android Service in a Flutter Plugin

我正在创建一个卡片 reader 集成,该集成使用 Android 服务作为部分集成。标准 Android 实现在 AndroidManifest.xml

中包含一个 android 服务定义
    <service
        android:name="com.anywherecommerce.android.sdk.services.CardReaderConnectionService"
        android:stopWithTask="false" />

https://github.com/dazza5000/any-pay-android-sample/blob/4f7ca7af79f2494e3ec408b025446be6020c0aa4/src/main/AndroidManifest.xml#L43-L45

如何在 Flutter 插件中定义它,以便将服务定义添加到使用它的应用程序的 AndroidManifest 中?我是否只是将它作为库的一部分包含在内,然后让用户在他们的应用程序中注册该服务AndroidManifest.xml

我无法确定如何在将添加到插件使用应用程序的 Flutter 插件中包含服务定义。

我必须做的是在使用插件的应用程序的 AndroidManifest.xml 文件中添加服务定义。

尚未在服务中尝试过此操作,但在插件的文件夹中创建骨架清单似乎确实会在构建时将骨架合并到应用程序的清单中。

例如,使用以下框架,application meta-data 定义可以很好地合并。:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.plugin.restrictions_manager">
    <application>
        <meta-data android:name="android.content.APP_RESTRICTIONS"
                android:resource="@xml/app_restrictions" />
    </application>
</manifest>

[编辑] 这种方法确实适用于服务声明。要查看合并的 AndroidManifest.xml,请查看 my_plugin/build/app/outputs/apk/debug/app-debug.apk,可在 Android Studio 中浏览。