2012-01-12 20 views
5

Sto facendo un programma e voglio che l'app faccia una notifica. Quando la notifica si interrompe, viene visualizzato solo il testo del ticker. Nessun suono o vibrazione o luce è accompagnato da esso.La notifica non produce suoni o vibrazioni?

Ecco un esempio del mio codice:

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); 

risposta

1

Ti è assicurarsi che il dispositivo non sia stato disattivato e in realtà ha un suono di notifica scelto dall'utente (anche non in silenzio)?

Un'altra cosa da provare sarebbe:

[Note obj].sound = value 
[Note obj].LEDARGB = value 
[Note obj].vibrate = value 
+0

Sì, il suono è attivo e ho selezionato un suono quando la notifica si è interrotta. proverò il codice e vedrò se funziona. – Tj5

+0

ho provato questo e ho capito che questo è quello che sto facendo almeno per vibrare e il mio codice dovrebbe informare il gestore delle notifiche di usare i valori predefiniti per le luci e il suono ... Quindi non funziona ancora – Tj5

3

per rendere il lavoro del LED, è necessario indicare cosa fare.

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? 

per far funzionare il vibrare, è necessario il permesso aggiunto al vostro manifesto

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

Per aggiungere luce di notifica è necessario aggiungere questo (notare i .FLAGS, non .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 

Per l'audio di default:

notification.defaults |= Notification.DEFAULT_SOUND; 

Per modello di vibrazione di default:

notification.defaults |= Notification.DEFAULT_VIBRATE; 

Per le vibrazioni, come detto Dean Thomas, avrete bisogno di un permesso <uses-permission android:name="android.permission.VIBRATE"/>

0

trovo c'è un metodo setDefaults in NotificationCompat.Builder, e si prevede la regolazione preferenze di notifica . Ecco un esempio:

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()); 

Se non si utilizzano tutti i valori predefiniti, si può anche provare DEFAULT_SOUND, DEFAULT_VIBRATE, DEFAULT_LIGHTS come si desidera.