Развевайте уведомления через Kotlin без использования Firebase

# #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  

Заранее благодарю вас:)