Pembuat Notifikasi Normal tidak menampilkan notifikasi di Android O.
Bagaimana saya bisa menampilkan notifikasi di Android 8 Oreo?
Apakah ada potongan kode baru untuk ditambahkan untuk menampilkan pemberitahuan di Android O?
Pembuat Notifikasi Normal tidak menampilkan notifikasi di Android O.
Bagaimana saya bisa menampilkan notifikasi di Android 8 Oreo?
Apakah ada potongan kode baru untuk ditambahkan untuk menampilkan pemberitahuan di Android O?
Jawaban:
Di Android O Anda harus menggunakan saluran dengan Notification Builder Anda
di bawah ini adalah kode contoh:
Atau dengan kompatibilitas Penanganan oleh:
atau jika Anda ingin perbaikan sederhana maka gunakan kode berikut:
Pembaruan: Referensi NotificationCompat.Builder
Konstruktor ini sudah tidak digunakan lagi di API level 26.0.0 sehingga Anda harus menggunakannya
jadi tidak perlu
setChannelId
dengan konstruktor baru.Dan Anda harus menggunakan pustaka AppCompat terbaru saat ini 26.0.2
Sumber dari Saluran Pengembang Android di Youtube
Anda juga dapat memeriksa Android Documents resmi
sumber
NotificationCompat.Builder(Context, String)
konstruktor baru ? Saya menggunakan (antara lain): -compileSdkVersion 26
-buildToolsVersion '26.0.2'
-compile 'com.android.support:appcompat-v7:26.0.0-beta2'
namun masih belum menerima konstruktor saya menggunakan Konteks dan String. Ada ide?Di sini saya memposting beberapa fungsi solusi cepat dengan penanganan maksud
sumber
Selain jawaban ini , Anda perlu membuat saluran notifikasi sebelum dapat digunakan.
Anda juga perlu menggunakan saluran hanya jika targetSdkVersion Anda 26 atau lebih tinggi.
Jika Anda menggunakan NotificationCompat.Builder, Anda juga perlu memperbarui ke versi beta dari perpustakaan dukungan: https://developer.android.com/topic/libraries/support-library/revisions.html#26-0-0- beta2 (untuk dapat memanggil
setChannelId
pembuat compat).Hati-hati karena pemutakhiran pustaka ini menaikkan minSdkLevel menjadi 14.
sumber
sumber
Jika Anda tidak bisa mendapatkan pemberitahuan push dalam 26+ versi SDK?
NotificationCompat.Builder notificationBuilder = NotificationCompat.Builder baru (konteks, channel_id)
-> Di sini Anda akan mendapatkan pemberitahuan push menggunakan
channel_id
perangkat Anda yang terdiri dari 26+ versi SDK.-> Karena,
NotificationCompat.Builder(context)
metode yang sudah usang sekarang Anda akan menggunakan versi yang diperbarui yang memiliki dua parameter satu konteks, yang lain adalah channel_id.->
NotificationCompat.Builder(context, channel_id)
metode yang diperbarui. Cobalah.-> Dalam 26+ versi perangkat SDK Anda akan membuat channel_id setiap kali.
sumber
Gunakan kelas ini untuk Pemberitahuan Android 8
sumber
Coba Kode ini:
sumber
Aplikasi Demo Pemberitahuan Android untuk Android O serta versi API yang lebih rendah. Berikut ini adalah aplikasi demo terbaik di GitHub-Demo 1 dan GitHub-Demo 2 .
sumber
Ini adalah bug di firebase api versi 11.8.0, Jadi jika Anda mengurangi versi API Anda tidak akan menghadapi masalah ini.
sumber
Saya mengalami masalah yang sama pada Oreo dan menemukan bahwa jika Anda pertama kali membuat Saluran Anda dengan NotificationManager.IMPORTANCE_NONE, kemudian perbarui nanti, saluran akan mempertahankan tingkat kepentingan aslinya.
Ini didukung oleh dokumentasi pelatihan Pemberitahuan Google yang menyatakan:
Menghapus dan menginstal ulang aplikasi akan memungkinkan Anda untuk mengatur ulang perilaku saluran.
Sebaiknya hindari menggunakan IMPORTANCE_NONE kecuali jika Anda ingin menekan notifikasi untuk Saluran itu, yaitu untuk memanfaatkan notifikasi diam.
sumber
Begini caranya
Baca tutorial lengkap di => https://developer.android.com/training/notify-user/build-notification
sumber
CHANNEL_ID
di NotificationChannel dan Notification.Builder harus sama, coba kode ini:sumber
Nah dalam kasus saya, saya memiliki Android 8.1.0 dan nomor model vivo1811 , dan saya telah mencoba dengan semua solusi di atas tetapi Tidak ada yang berhasil.
Jadi Akhirnya, saya telah menulis ke Dukungan Firebase kemudian tentang debugging lebih lanjut, saya mendapatkan ini- "Gagal menyiarkan aplikasi yang berhenti": Pastikan bahwa aplikasi tidak dipaksa dihentikan " .
Dan ini adalah jawaban dari tim Firebase ->
Di sini OEM adalah singkatan dari Original Equipment Manufacturer .
sumber
Bagi siapa pun yang berjuang dengan ini setelah mencoba solusi di atas, pastikan bahwa id saluran yang digunakan saat membuat saluran notifikasi identik dengan id saluran yang Anda atur di pembuat Notification.
sumber
sumber
Metode berikut akan menampilkan Pemberitahuan , mengaktifkan teks besar dan membekukan (Pemberitahuan tidak akan dihapus bahkan setelah pengguna usap). Kami membutuhkan layanan NotificationManager
Metode untuk Menghapus Pemberitahuan
Tautan Sumber
sumber
sudah usang untuk versi lebih besar dari atau sama dengan Android Oreo. Anda dapat mengubah implementasi menjadi menggunakan
sumber
sumber
Sepotong kode di bawah ini berfungsi untuk saya di Oreo, Anda dapat mencoba ini. Semoga ini akan berhasil untuk Anda
void sendNotification (Konteks ctx, judul String, int notificationNumber, pesan String, subteks string, Intent intent) {
coba {
sumber
Di android Oreo, aplikasi notifikasi dilakukan dengan menggunakan saluran dan kelas NotificationHelper. Ini harus memiliki id saluran dan nama saluran.
Pertama, Anda harus membuat Kelas NotificationHelper
Buat tombol di file aktivitas xml, lalu Di aktivitas utama
Kemudian jalankan proyek Anda
sumber
Anda Perlu membuat saluran pemberitahuan untuk level API di atas 26 (oreo).
STRING_ID = string pemberitahuan channelid sama dengan di Notification.Builder seperti ini
Id saluran dalam pemberitahuan dan dalam pemberitahuan harus sama Seluruh kode seperti ini .. `
sumber
Pertama-tama, jika Anda tidak tahu, dari Android Oreo yaitu API level 26 itu wajib bahwa pemberitahuan dikirim ulang dengan saluran.
Dalam hal ini banyak tutorial mungkin membingungkan Anda karena mereka menunjukkan contoh berbeda untuk notifikasi di atas oreo dan di bawah.
Jadi di sini adalah kode umum yang berjalan di atas dan di bawah oreo:
Video Tutorial: YOUTUBE VIDEO
Jika Anda ingin mengunduh demo ini: GitHub Link
sumber
sumber