android/app/src/main/kotlin/jp/company/app/Application.kt
package jp.company.app import io.flutter.app.FlutterApplication import io.flutter.plugin.common.PluginRegistry import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService class Application : FlutterApplication(), PluginRegistrantCallback { override fun onCreate() { super.onCreate() FlutterFirebaseMessagingService.setPluginRegistrant(this) } override fun registerWith(registry: PluginRegistry) { CustomPluginRegistrant.registerWith(registry) } }
android/app/src/main/kotlin/jp/company/app/CustomPluginRegistrant.kt
package jp.company.app import io.flutter.plugin.common.PluginRegistry import io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin import com.dexterous.flutterlocalnotifications.FlutterLocalNotificationsPlugin class CustomPluginRegistrant { companion object { fun registerWith(registry: PluginRegistry) { if (alreadyRegisteredWith(registry)) { return } FirebaseMessagingPlugin.registerWith(registry.registrarFor("io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin")) FlutterLocalNotificationsPlugin.registerWith(registry.registrarFor("com.dexterous.flutterlocalnotifications.FlutterLocalNotificationsPlugin")); } fun alreadyRegisteredWith(registry: PluginRegistry): Boolean { val key: String = FirebaseCloudMessagingPluginRegistrant::class.java.getCanonicalName() if (registry.hasPlugin(key)) { return true } registry.registrarFor(key) return false } } }
android/app/src/main/kotlin/jp/company/app/FirebaseCloudMessagingPluginRegistrant.kt
package jp.company.app import io.flutter.plugin.common.PluginRegistry import io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin class FirebaseCloudMessagingPluginRegistrant { companion object { fun registerWith(registry: PluginRegistry) { if (alreadyRegisteredWith(registry)) { return; } FirebaseMessagingPlugin.registerWith(registry.registrarFor("io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin")) } fun alreadyRegisteredWith(registry: PluginRegistry): Boolean { val key = FirebaseCloudMessagingPluginRegistrant::class.java.name if (registry.hasPlugin(key)) { return true } registry.registrarFor(key) return false } } }