Не работает лампочка и вибрация при создании уведомления на Android
Использую Java для создания приложения и мне нужно показать уведомление, но чтобы оно появилось с вибрацией и с мигающим огоньком на телефоне. Вот код, который я сейчас использую в методе onCreate() сервиса:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
String channelId = "my_channel123";
NotificationChannel channel = new NotificationChannel(channelId, "test", NotificationManager.IMPORTANCE_HIGH);
channel.enableLights(true);
channel.enableVibration(true);
channel.setLightColor(Color.BLUE);
channel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);
notificationManager.createNotificationChannel(channel);
}
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "my_channel123")
.setSmallIcon(R.drawable.fin)
.setContentTitle("Заголовок")
.setContentText("Текст")
.setLights(Color.BLUE, 1000, 1000)
.setVibrate(new long[]{0, 250, 250, 250})
.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));
Intent notificationIntent = new Intent(this, MainActivity.class);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
@SuppressLint("UnspecifiedImmutableFlag") PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(contentIntent);
Notification notification1 = builder.build();
notificationManager.notify(0, notification1);
Вот разрешения в Android Manifest:
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
По идеи, код должен работать, но на моём телефоне просто появляется уведомление. Без вибрации, без огонька, но благо со звуком. И уведомление не появляется на экране блокировки. Все разрешения для самого приложения в телефоне есть, он может постить уведомления и я не ставил режим "Не беспокоить". На моём телефоне стоит Android 10, а марка Honor 10 Lite.
Заранее спасибо!
Источник: Stack Overflow на русском