微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

升级到 Android Embedding v2 时如何处理自定义应用程序类?

如何解决升级到 Android Embedding v2 时如何处理自定义应用程序类?

我有一个 Flutter 项目,我在其中向自定义 Application添加了一些代码。现在我想将项目升级到 Android Embedding v2,但在 migration guide 中他们只提到如何处理 MainActivity.java,而不是 Application.java。关于 Application 类的唯一部分是从 android:name删除 AndroidManifest.xml,我猜除非我将自定义代码移到其他地方,否则我无法做到这一点?

我当前的 Application.java 看起来像这样:


import io.Flutter.app.FlutterApplication;
import io.Flutter.plugin.common.PluginRegistry;
import io.Flutter.plugin.common.PluginRegistry.PluginRegistrantCallback;
import io.Flutter.plugins.GeneratedpluginRegistrant;
import io.Flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService;
import io.Flutter.plugins.firebasemessaging.FirebaseMessagingPlugin;
import android.app.NotificationChannel;
import android.app.notificationmanager;
import android.os.Build;
import android.net.Uri;
import android.media.AudioAttributes;

public class Application extends FlutterApplication implements PluginRegistrantCallback {


    @Override
    public void onCreate() {
        super.onCreate();
        FlutterFirebaseMessagingService.setPluginRegistrant(this);
        createNotificationChannels();
    }

    @Override
    public void registerWith(PluginRegistry registry) {
        FirebaseMessagingPlugin.registerWith(registry.registrarFor("io.Flutter.plugins.firebasemessaging.FirebaseMessagingPlugin"));
    }


    private void createNotificationChannels() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            notificationmanager manager = getSystemService(notificationmanager.class);
            AudioAttributes audioAttributes = new AudioAttributes.Builder()
                    .setUsage(AudioAttributes.USAGE_NOTIFICATION)
                    .setContentType(AudioAttributes.CONTENT_TYPE_UNKNowN)
                    .build();

            NotificationChannel channelDefault = new NotificationChannel(
                    "channelDefault","Notifications",notificationmanager.IMPORTANCE_HIGH
            );
            channelDefault.setDescription("General notifications");
            manager.createNotificationChannel(channelDefault);


            NotificationChannel channelAlarm = new NotificationChannel(
                    "channelAlarm","Alarm",notificationmanager.IMPORTANCE_HIGH
            );
            channelAlarm.setDescription("Alarm notifications");
            channelAlarm.setSound(
                    Uri.parse("android.resource://"+this.getPackageName()+"/" + R.raw.alarm),audioAttributes
            );
            manager.createNotificationChannel(channelAlarm);

        }
    }
}

所有这些代码都应该进入 MainActivity.java 还是我应该保持我的 Application.java 原样(并将 android:name=".Application" 保持在 AndroidManifest.xml 中)?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。