2012-12-10 3 views

Répondre

4

En AlarmReceiver.java, autour de la ligne 70, vous verrez les lignes de code suivantes:

// Construct the notification and notificationManager objects 
    final NotificationManager notificationMgr = (NotificationManager) systemService; 
    final Notification notification = new Notification(R.drawable.ic_launcher, tickerText, 
      System.currentTimeMillis()); 
    final PendingIntent contentIntent = PendingIntent.getActivity(context, 0, new Intent(), 0); 
    notification.defaults |= Notification.DEFAULT_SOUND; 
    notification.vibrate = new long[] { 0, 100, 200, 300 }; 
    notification.setLatestEventInfo(context, notificationTitle, notificationSubText, contentIntent); 

Ajoutez les lignes appropriées pour correspondre à ce qui suit:

// Construct the notification and notificationManager objects 
    final NotificationManager notificationMgr = (NotificationManager) systemService; 
    final Notification notification = new Notification(R.drawable.ic_launcher, tickerText, 
      System.currentTimeMillis()); 
    Intent notificationIntent = new Intent(context, CLASS_TO_OPEN.class); 
    final PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0); 
    notification.defaults |= Notification.DEFAULT_SOUND; 
    notification.vibrate = new long[] { 0, 100, 200, 300 }; 
    notification.flags |= Notification.FLAG_AUTO_CANCEL; 
    notification.setLatestEventInfo(context, notificationTitle, notificationSubText, contentIntent); 

où CLASS_TO_OPEN est le nom de la classe que vous souhaitez ouvrir lorsque la notification est pressée. Pour clarifier, pour que la notification ouvre une activité lorsqu'il est pressé, vous devez associer cette activité à l'objet de notification. Ceci est fait en créant un Intent, en spécifiant l'activité à ouvrir (comme dans NAME_OF_ACTIVITY.class) en tant que deuxième paramètre, et en passant ce Intent à un PendingIntent comme troisième paramètre. Ceci, à son tour, est transmis à l'objet de notification via la méthode setLatestEventInfo.

Dans l'extrait de code ci-dessus, tout est fait pour vous, à l'exception de la spécification de l'activité à ouvrir, car celle-ci sera spécifique à votre projet. Sauf si vous avez ajouté des activités supplémentaires, un projet PhoneGap/Cordova contient une activité, à savoir celle qui ouvre Cordova WebView. Si vous ne connaissez pas ou rappelez-vous le nom de cette activité dans votre projet, vous pouvez le trouver dans l'explorateur de paquet (dans Eclipse) en suivant:

src> NAME_OF_YOUR_PACKAGE> NameOfActivity.java

Pour être sûr que c'est le nom de la classe, ouvrez le fichier java avec un éditeur de texte et vous verrez NAME_OF_ACTIVITY extends DroidGap. Remplacez CLASS_TO_OPEN dans l'extrait ci-dessus avec le nom de votre activité (doit inclure l'extension de fichier .class).

+0

Merci beaucoup, la notification disparaît maintenant de la barre d'état quand je clique dessus, mais je n'ouvre rien. –

Questions connexes