2010-07-21 12 views
17

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)

+0

Hai il permesso Vibrazione? – Sephy

+0

Ho testato il tuo codice sul mio Nexus One, con il permesso e ottengo le vibrazioni ma non il led ... continuando a scavare – Sephy

+0

stessa cosa, mi era sfuggito il permesso di vibrazione, e ora quella parte sta funzionando. – SirDarius

risposta

28

Aggiungi il permesso di tuo file manifesto

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

EDIT

Per Luci provare ad aggiungere esplicitamente, la luce di default potrebbe essere configurato per essere nolight

notification.flags |= Notification.FLAG_SHOW_LIGHTS; 
notification.ledARGB = 0xff00ff00; 
notification.ledOnMS = 300; 
notification.ledOffMS = 1000; 
+0

L'ho suggerito anch'io, ma dopo un po 'di riflessione, non può essere quello. Quando non hai un'autorizzazione, l'applicazione si blocca, vero? quindi non avrebbe visto il resto funzionare – Sephy

+0

è quello che ho pensato, anche un permesso mancante dovrebbe aver generato un'eccezione. – SirDarius

+0

per completare il mio commento precedente, aggiungendo il permesso mancante ha fatto il trucco, tuttavia ancora senza luci, e non ho trovato un permesso specifico per quello scopo – SirDarius

14

Oltre alla risposta Pentium10'S:

Metti in stop il tuo dispositivo e le luci si accenderanno! ;)

+0

Ciao OneWorld prova il codice sopra e metti anche questo codice note.defaults | = Notification.DEFAULT_SOUND; note.defaults | = Notification.DEFAULT_VIBRATE; da questo la vibrazione e il suono funzionano ma la luce non funziona anche io metto il mio dispositivo nel sonno e la luce si spegne. –

+1

Per chi si imbatte in questo in futuro, assicurati che il telefono sia spento come ha dichiarato OneWorld. Assicurati anche che la barra delle notifiche non sia già stata tirata giù (ad esempio, l'utente non ha guardato la notifica). In questo caso, il LED lampeggia solo. – ashishduh

Problemi correlati