Android 通知声音仅在全新安装后更新

问题描述 投票:0回答:1

我的 flutter android 应用程序上的通知声音不会通过安装新版本的应用程序来更新,只有在我卸载并重新安装它后才会更新。

这是我的 MainActivity.kt:

import android.app.NotificationChannel
import android.app.NotificationManager
import android.media.AudioAttributes
import android.net.Uri
import android.os.Build
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugins.GeneratedPluginRegistrant
import android.util.Log

class MainActivity: FlutterActivity() {
    override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
        super.configureFlutterEngine(flutterEngine)
        GeneratedPluginRegistrant.registerWith(flutterEngine)
        createNotificationChannel()
    }

    private fun createNotificationChannel() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

            val channelId = "channel_id"
            val channelName = "Channel Name"
            val importance = NotificationManager.IMPORTANCE_HIGH
            val channel = NotificationChannel(channelId, channelName, importance)

            val soundUri = Uri.parse("android.resource://" + packageName + "/" + R.raw.alert)
            val audioAttributes = AudioAttributes.Builder()
                .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
                .setUsage(AudioAttributes.USAGE_NOTIFICATION)
                .build()

            channel.setSound(soundUri, audioAttributes)

            val notificationManager = getSystemService(NotificationManager::class.java)

            notificationManager?.deleteNotificationChannel(channelId)

            notificationManager.createNotificationChannel(channel)
        }
    }
}

我认为这是因为现有的频道ID,所以我尝试先使用以下方法删除它:

 notificationManager?.deleteNotificationChannel(channelId)

我希望在安装新版本的应用程序后通知声音会更新,而不必先卸载它

android flutter kotlin push-notification firebase-cloud-messaging
1个回答
0
投票

创建新的频道 ID 并替换旧的频道 ID 似乎可以解决此问题。我仍然不知道为什么,如果有人知道请解释我会很高兴知道为什么会发生这种情况。谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.