Ho creato un'applicazione che crea le notifiche, utilizzando il seguente codice:Come posso abilitare le vibrazioni e le luci utilizzando l'API delle notifiche Android?
// 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);
La notifica funziona, e la suoneria corretto viene utilizzato.
Tuttavia, anche se le preferenze sono attivate correttamente e le flag di notifica sono impostate correttamente (ho controllato tramite debug), la notifica non vibra mai e non causa mai l'attivazione delle luci.
Avrei incolpato le impostazioni del mio telefono, ma tutte le altre app che utilizzano notifiche, come la messaggistica, Gmail e altri utilizzano correttamente tutte queste funzionalità.
Qualcuno sa cosa ho fatto di sbagliato? (Il mio telefono è un HTC Hero con Android 2.1)
Hai il permesso Vibrazione? – Sephy
Ho testato il tuo codice sul mio Nexus One, con il permesso e ottengo le vibrazioni ma non il led ... continuando a scavare – Sephy
stessa cosa, mi era sfuggito il permesso di vibrazione, e ora quella parte sta funzionando. – SirDarius