web-dev-qa-db-ja.com

Firebaseメッセージング:デフォルトの通知チャネルが機能しない

Android Oreoでチャネルを指定せずにFirebaseコンソールから通知を送信する場合、「その他」のチャネルを使用する必要があります[〜#〜] or [〜#〜]デフォルトが提供されている場合チャネルAndroidマニフェスト。アプリでデフォルトチャネルを作成して提供する:

// Application onCreate
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    val manager = getSystemService(Context.NOTIFICATION_SERVICE) 
            as NotificationManager
    val channelId = getString(R.string.notification_channel_id)
    if(manager.getNotificationChannel(channelId)==null) {
        val channel = NotificationChannel(channelId,
                getString(R.string.notification_channel_name),
                NotificationManager.IMPORTANCE_DEFAULT)
        channel.description = 
                getString(R.string.notification_channel_description)
        manager.createNotificationChannel(channel)
    }
}

// Manifest
<meta-data
    Android:name="com.google.firebase.messaging.default_notification_channel"
    Android:value="@string/notification_channel_id" />

しかし、それは機能しません。通知は常に「その他」のチャネルを使用します。ここに何か不足していますか、それともFirebaseのバグですか?

10

申し訳ありませんが、ドキュメントは適切に更新されていません:(

マニフェストの正しいメタデータは次のとおりです。

<meta-data
   Android:name="com.google.firebase.messaging.default_notification_channel_id"
   Android:value="@string/notification_channel_id" />

_idの最後にAndroid:name属性値。

ドキュメントをできるだけ早く更新します。

15
Diego Giorgini