Вибрация не работает с уведомлением

Я пытаюсь установить вибрацию и звук для уведомления. У меня почему-то не работает :( Вот код, который я пытаюсь

NotificationManager notificationManager = getNotificationManager();
        NotificationCompat.Builder builder = new NotificationCompat.Builder(
                context);
        builder.setSound(alarmSound);
        builder.setVibrate(new long[] { 1000, 1000, 1000 });
        Notification notification = builder.setContentIntent(contentIntent)
                .setSmallIcon(icon).setTicker(title).setWhen(0)
                .setAutoCancel(true).setContentTitle(title).setPriority(Notification.PRIORITY_HIGH)
                .setStyle(new NotificationCompat.BigTextStyle().bigText(msgToDisply))
                .setContentText(msgToDisply).build();
        notificationManager.notify(NOTIFICATION, notification);
        stopSelf();

А также

public NotificationManager getNotificationManager() {
        return (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    }

И у меня есть разрешение в моем манифесте

<uses-permission android:name="android.permission.VIBRATE" />

Любая подсказка, что происходит?


person Achayan    schedule 28.12.2014    source источник


Ответы (2)


Это потому, что вы не объявили класс Vibrator для вибрации при уведомлении. В вашем построителе уведомлений поместите этот код и установите продолжительность вибрации на основе вашего выбора.

    Vibrator v = (Vibrator) this.context.getSystemService(Context.VIBRATOR_SERVICE);
 // Vibrate for 500 milliseconds
 v.vibrate(500);
person BiggDawgg    schedule 28.12.2014
comment
Но я использую NotificationCompat.Builder - person Achayan; 29.12.2014
comment
не имеет значения, вы должны объявить функцию вибрации! моим кодом или кодом @Panayiotis в любом случае нужно объявить! - person BiggDawgg; 29.12.2014
comment
ПОЧЕМУ NotificationBuilder и Notification поддерживают настройку значений вибрации? - person Stealth Rabbi; 19.05.2017
comment
Мне интересно то же самое, что и @StealthRabbi, приведенное выше предложение будет работать, но оно просто вызывает вибрацию вручную, я бы подумал, что метод NotificationBuilders.setVibrate() должен справиться с этим! - person Michael Marsella; 07.09.2018
comment
Это взлом, а не ответ на вопрос - person Charanjit Singh; 08.05.2020

Добавь это

notification.defaults|= Notification.DEFAULT_SOUND;
notification.defaults|= Notification.DEFAULT_LIGHTS;
notification.defaults|= Notification.DEFAULT_VIBRATE;
person Panayiotis Irakleous    schedule 28.12.2014
comment
@Achayan, можешь ли ты указать код своего вещательного приемника? - person Panayiotis Irakleous; 29.12.2014
comment
Вибратор вибратор = (Вибратор) этот .getSystemService(Context.VIBRATOR_SERVICE); вибратор.вибрировать(2000); Наконец-то это работает .. спасибо, ребята, за помощь - person Achayan; 29.12.2014
comment
Добро пожаловать :) я сказал вам, что вы можете сделать это с моим кодом :) Я рад, что смог помочь :) - person BiggDawgg; 29.12.2014