Уведомление не издает звук или вибрацию? - PullRequest
5 голосов
/ 13 января 2012

Я создаю программу и хочу, чтобы приложение отправляло уведомление. Когда уведомление отключается, отображается только текст тикера. С ним не сопровождается ни звук, ни вибрация, ни свет.

Вот пример моего кода:

int icon = R.drawable.icon;  
NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);

Context context = getApplicationContext();      

CharSequence contentTitle = "My notification";  
CharSequence contentText = "Countdown Complete!";

Intent intent = new Intent();
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
Notification notification = new Notification(icon, myCountDown.getName() + " is completed!", System.currentTimeMillis());

long[] vibrate = {0,100,200,300};
notification.vibrate = vibrate;
notification.defaults |= Notification.DEFAULT_LIGHTS;
notification.defaults |= Notification.DEFAULT_SOUND;
notification.setLatestEventInfo(context, contentTitle, contentText, pendingIntent);
notificationManager.notify(myCountDown.getId(), notification);

Ответы [ 4 ]

8 голосов
/ 04 мая 2012

Чтобы добавить индикатор уведомлений, необходимо добавить это (обратите внимание на .flags, а не .defaults):

notification.flags |= Notification.FLAG_SHOW_LIGHTS;
notification.ledARGB=0xffffffff; //color, in this case, white
notification.ledOnMS=1000; //light on in milliseconds
notification.ledOffMS=4000; //light off in milliseconds

Для звука по умолчанию:

notification.defaults |= Notification.DEFAULT_SOUND;

Для шаблона вибрации по умолчанию:

notification.defaults |= Notification.DEFAULT_VIBRATE;

Для вибрации, как упоминал Дин Томас, вам потребуется разрешение <uses-permission android:name="android.permission.VIBRATE"/>

3 голосов
/ 27 января 2012

Чтобы светодиод работал, вам нужно сказать ему, что делать.

   notification.ledOnMS = 1000; //Be on for a second
   notification.ledOffMS = 1000; //Be off for a second
   notification.ledARGB = Color.GREEN; //What colour should the LED be?

Чтобы вибрация работала, вам нужно добавить разрешение в ваш манифест

<uses-permission android:name="android.permission.VIBRATE"/>
1 голос
/ 13 января 2012

Убедитесь, что устройство не отключено и на самом деле звук уведомления выбран пользователем (также не тихий)?

Еще одна вещь, которую стоит попробовать:

[Note obj].sound = value
[Note obj].LEDARGB = value
[Note obj].vibrate = value
0 голосов
/ 02 февраля 2016

Я считаю, что в NotificationCompat.Builder есть метод setDefaults, и он позволяет вам настроить параметры уведомлений.Вот пример:

NotificationManager notificationManager = (NotificationManager)
            this.getSystemService(Context.NOTIFICATION_SERVICE);

NotificationCompat.Builder builder =
            new NotificationCompat.Builder(this);

builder.setSmallIcon(R.drawable.taiwanpic)
            .setWhen(System.currentTimeMillis())
            .setContentTitle("AAAAA")
            .setContentText("BBBBB")
            .setSubText("CCCCC")
            .setContentInfo("DDDDD")
            .setTicker("EEEEE")
            .setDefaults(Notification.DEFAULT_ALL);
int pid = android.os.Process.myPid();

notificationManager.notify(pid, builder.build());

Если вы не используете все значения по умолчанию, вы также можете попробовать DEFAULT_SOUND, DEFAULT_VIBRATE, DEFAULT_LIGHTS как хотите.

...