我的 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)
我希望在安装新版本的应用程序后通知声音会更新,而不必先卸载它
创建新的频道 ID 并替换旧的频道 ID 似乎可以解决此问题。我仍然不知道为什么,如果有人知道请解释我会很高兴知道为什么会发生这种情况。谢谢。