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のバグですか?
申し訳ありませんが、ドキュメントは適切に更新されていません:(
マニフェストの正しいメタデータは次のとおりです。
<meta-data
Android:name="com.google.firebase.messaging.default_notification_channel_id"
Android:value="@string/notification_channel_id" />
_id
の最後にAndroid:name
属性値。
ドキュメントをできるだけ早く更新します。