问题描述
我有一个 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 (将#修改为@)