# #android #flutter #kotlin #notifications #firebase-cloud-messaging
Вопрос:
Я попытался поместить функцию в kotlin MainActivity.kt, которая будет отображать уведомление Android при вызове.
Я вызову это уведомление через приложение flutter. Я не использую никаких внешних пакетов или FCM.
Однако, похоже, что есть проблемы со стороной приложения Kotlin, и я не могу получать какие-либо уведомления. Я погуглил в Интернете, но не смог найти никаких ответов.
Код MainActivity.kt :
package com.example.countdownapp import androidx.annotation.NonNull import io.flutter.embedding.engine.FlutterEngine import io.flutter.plugin.common.MethodChannel import io.flutter.embedding.android.FlutterActivity import androidx.core.app.NotificationCompat import android.app.NotificationManager import android.app.NotificationChannel import android.os.Build import android.content.Context import androidx.core.app.NotificationManagerCompat class MainActivity: FlutterActivity() { private val CHANNEL = "countdownapp/notifications" private val CHANNEL_ID = "example11" override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) { super.configureFlutterEngine(flutterEngine) createNotificationChannel() MethodChannel(flutterEngine.dartExecutor.binaryMessenger, CHANNEL).setMethodCallHandler { call, result -gt; // Note: this method is invoked on the main thread. // TODO println(call.method) if(call.method=="sendNotif"){ sendNotif() } } } private fun createNotificationChannel() { // Create the NotificationChannel, but only on API 26 because // the NotificationChannel class is new and not in the support library if (Build.VERSION.SDK_INT gt;= Build.VERSION_CODES.O) { val name = "hola" val descriptionText = "testing" val importance = NotificationManager.IMPORTANCE_DEFAULT val channel = NotificationChannel(CHANNEL_ID, name, importance).apply { description = descriptionText } // Register the channel with the system val notificationManager: NotificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager notificationManager.createNotificationChannel(channel) } } var builder = NotificationCompat.Builder(this, CHANNEL_ID) // .setSmallIcon(R.drawable.launch_background) .setContentTitle("Counting down") .setContentText("Much longer text that cannot fit one line...") .setStyle(NotificationCompat.BigTextStyle() .bigText("Much longer text that cannot fit one line...")) .setPriority(NotificationCompat.PRIORITY_HIGH) private fun sendNotif(){ println("lll") with(NotificationManagerCompat.from(this)) { notify(189, builder.build()) } } }
Ниже приведено my flutter code
, что вызовет функцию в Kotlin
.
static const platform = MethodChannel('countdownapp/notifications'); . . Futurelt;voidgt; sendNotification() async { final void result = await platform.invokeMethod('sendNotif'); }
Я вызову отправку уведомления нажатием кнопки.
Я получал following error:
[ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: PlatformException(error, Reserved id, null, java.lang.IllegalArgumentException: Reserved id
Заранее благодарю вас:)