2011-07-07 12 views
10

Parece que tengo un problema con mi código. He creado una actividad de prueba, solo para ver qué sucede, pero todavía no puedo.¿Qué pasa con mi código? Notificación: no hay sonido no vibra

public class test extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    String extra = "test"; 

    NotificationManager myNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 

    Intent intent = new Intent(this, test.class); 

    Notification notification = new Notification(R.drawable.icon, 
      extra, 
      System.currentTimeMillis()); 
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 
      0, 
      intent, 
      PendingIntent.FLAG_UPDATE_CURRENT); 

    notification.setLatestEventInfo(getApplicationContext(), "title", "text", pendingIntent); 
    notification.flags |= Notification.DEFAULT_SOUND; 
    notification.flags |= Notification.DEFAULT_LIGHTS; 
    notification.flags |= Notification.DEFAULT_VIBRATE; 
    notification.flags |= Notification.FLAG_INSISTENT; 
    notification.flags |= Notification.FLAG_AUTO_CANCEL; 

    myNotificationManager.notify(33, notification); 

} 
} 

No recibo sonido y/o vibro cuando aparece la notificación.

Miré la configuración de mi teléfono, y están bien, no hay sonido en silencio, por defecto habilitado.

Respuesta

17

Este ...

notification.flags |= Notification.DEFAULT_SOUND; 
notification.flags |= Notification.DEFAULT_LIGHTS; 
notification.flags |= Notification.DEFAULT_VIBRATE; 

tiene que ser ...

notification.defaults|= Notification.DEFAULT_SOUND; 
notification.defaults|= Notification.DEFAULT_LIGHTS; 
notification.defaults|= Notification.DEFAULT_VIBRATE; 
13

Para todos los valores por defecto (sonido, vibración & Luz) en 1 línea de código que puede utilizar:

notification.defaults = Notification.DEFAULT_ALL; 

esto es el equivalente a

notification.defaults|= Notification.DEFAULT_SOUND; 
notification.defaults|= Notification.DEFAULT_LIGHTS; 
notification.defaults|= Notification.DEFAULT_VIBRATE; 

asegúrese de configurar los permisos para vibrar en su Manifiesto

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