Я занимаюсь разработкой приложения, которое отображает оповещение при входящем или исходящем звонке (проверено и работает, когда нет вызова). Функция прекрасно работает на многих устройствах (Xiomi, Huawei, Oppo). Но в последних устройствах Samsung уведомление об этом не показывается. Вместо этого уведомление остается в центре уведомлений, и пользователь должен провести вниз, чтобы увидеть уведомление. Кто-нибудь еще сталкивался с подобной проблемой и имеет решение?
Фрагменты кода:
private var manager: NotificationManager? = null
val manger: NotificationManager
get() {
if(manager==null) {
manager = if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
applicationContext.getSystemService(NotificationManager::class.java)
} else {
applicationContext.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
}
}
return manager!!
}
private fun createNotificationChannel() {
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val mChannel = NotificationChannel(ID,NAME,NotificationManager.IMPORTANCE_HIGH)
mChannel.setShowBadge(true)
mChannel.enableVibration(true)
mChannel.lockscreenVisibility=Notification.VISIBILITY_PUBLIC
manger.createNotificationChannel(mChannel)
}
}
public static NotificationCompat.Builder showNotification(Context context, String notificationChannel, String Message, String title) {
Bitmap picture = Utils.decodeResource(context.getResources(), R.drawable.notifi, 64, 64);
return new NotificationCompat.Builder(context, notificationChannel)
.setLargeIcon(picture)
.setSmallIcon(R.drawable.splash_logo)
.setColor(context.getResources().getColor(R.color.colorPrimaryDark))
.setContentTitle(title)
.setContentText(Message)
.setAutoCancel(true)
.setOngoing(true)
.setDefaults(DEFAULT_SOUND | DEFAULT_VIBRATE)
.setPriority(NotificationCompat.PRIORITY_MAX)
.setCategory(Notification.CATEGORY_CALL)
.setVibrate(new long[0])
.setTimeoutAfter(10000);
}