Как включить вибрацию и подсветку с помощью API уведомлений Android? - PullRequest
17 голосов
/ 21 июля 2010

Я создал приложение, которое создает уведомления, используя следующий код:

// notification
Notification notification = new Notification(R.drawable.notification_icon, title, System.currentTimeMillis());
notification.flags |= Notification.FLAG_AUTO_CANCEL;

// parameters
String ringtone = prefs.getString(context.getString(R.string.key_notifications_ringtone), "");
if (ringtone.length() > 0) {
    notification.sound = Uri.parse(ringtone);
    notification.audioStreamType = AudioManager.STREAM_NOTIFICATION;
}

boolean useVibrator = prefs.getBoolean(context.getString(R.string.key_notifications_use_vibrator), false);
if (useVibrator) {
    notification.defaults |= Notification.DEFAULT_VIBRATE;
}

boolean useLed = prefs.getBoolean(context.getString(R.string.key_notifications_use_led), false);
if (useLed) {
    notification.defaults |= Notification.DEFAULT_LIGHTS;
    notification.flags |= Notification.FLAG_SHOW_LIGHTS;
}

// alert
RemoteViews contentView = new RemoteViews(context.getPackageName(), R.layout.notification);
contentView.setImageViewResource(R.id.notification_icon, R.drawable.icon);
contentView.setTextViewText(R.id.notification_title, title);
contentView.setTextViewText(R.id.notification_text, text);
notification.contentView = contentView;

Intent notificationIntent = new Intent(context, MyActivity.class);

PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
notification.contentIntent = contentIntent;

notificationManager.notify(1, notification);

Уведомление работает, и используется правильный рингтон.

Однако, хотя настройкиправильно активированы, и флаги уведомлений установлены правильно (я проверил отладкой), уведомление никогда не вибрирует и никогда не вызывает активацию ламп.Сообщения, Gmail и другие правильно используют все эти функции.

Может кто-нибудь знает, что я сделал не так?(мой телефон - HTC Hero с Android 2.1)

Ответы [ 2 ]

28 голосов
/ 21 июля 2010

Добавить разрешение к файлу манифеста

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

РЕДАКТИРОВАТЬ

Для источников света попробуйте добавить их явно, индикатор по умолчанию может быть настроен на nolight

notification.flags |= Notification.FLAG_SHOW_LIGHTS;
notification.ledARGB = 0xff00ff00;
notification.ledOnMS = 300;
notification.ledOffMS = 1000;
14 голосов
/ 09 декабря 2010

В дополнение к ответу Pentium10:

Положите ваше устройство в режим сна, и свет будет гореть! ;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...