2012-05-04 16 views
7

Estoy usando el constructor NotificationManager para mostrar una alerta en mi aplicación. Sé que el primer parámetro para el método notify es una identificación y el marco actualizará la notificación si ya está visible, pero si configuro la alerta para reproducir un tono de llamada o vibrar, también se activará el tono de llamada/vibración si hay una alerta ¿actualizado?Notificación de actualización vibrar/tono de llamada

NotificationCompat.Builder nb = new NotificationCompat.Builder(this); 
    nb.setContentTitle("title"); 
    nb.setContentText("message"); 
    nb.setSmallIcon(getResources().getIdentifier("drawable/alert", null, packageName)); 
    nb.setWhen(System.currentTimeMillis()); 
    nb.setAutoCancel(true); 
    nb.setTicker("message"); 

    final Uri ringtone = Uri.parse(PreferenceManager.getDefaultSharedPreferences(this).getString("ringtone", getString(R.string.settings_default_ringtone))); 

    nb.setDefaults(Notification.DEFAULT_VIBRATE); 
    nb.setSound(ringtone);  
    nb.setDefaults(Notification.DEFAULT_LIGHTS); 

    NotificationManager nm = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); 

    final Intent notificationIntent = new Intent(this, Main.class); 
    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 

    final PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); 
    nb.setContentIntent(contentIntent); 

    Notification notification = nb.getNotification(); 

    nm.notify(0, notification); 
+0

Ir a ver

Respuesta

6

Acabo de probar esto yo mismo y la vibración/tonos de llamada se disparan, incluso en una actualización.

ACTUALIZACIÓN: Apenas una actualización, si está utilizando o NotificationCompat.BuilderNotification.Builder puede establecer setOnlyAlertOnce solamente a sonar el tono de llamada/vibre una vez.

0

NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder (MainActivity.this)

largo [] v = {500,1000}; notificationBuilder.setVibrate (v);

Uri uri = RingtoneManager.getDefaultUri (RingtoneManager.TYPE_NOTIFICATION); notificationBuilder.setSound (uri);

Cuestiones relacionadas