2 votes

Lancer l'application Android à partir du projet Library

Je développe l'application PushNotification pour Android dans la bibliothèque Android. Je ne parviens pas à lancer l'application Android en cliquant sur le message de notification push. Je ne parviens pas à récupérer la classe d'application Android dans le projet de bibliothèque pour la lancer dans la méthode generatePushNotification(). Voici l'extrait de code du projet de bibliothèque.

private static void generateNotification(Context context, String message) {
    int icon = R.drawable.ic_launcher;
    long when = System.currentTimeMillis();
    NotificationManager notificationManager = (NotificationManager)
            context.getSystemService(Context.NOTIFICATION_SERVICE);
    Notification notification = new Notification(icon, message, when);

    String title = context.getString(R.string.app_name); 
 // Here I am getting the android application context as sActiveContext
    Intent notificationIntent = new Intent(context,  "need to launch the android application main activity");
    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
            Intent.FLAG_ACTIVITY_SINGLE_TOP);
    PendingIntent intent =
            PendingIntent.getActivity(context, 0, notificationIntent, 0);
    notification.setLatestEventInfo(context, title, message, intent);
    notification.flags |= Notification.FLAG_AUTO_CANCEL; 
    notification.defaults |= Notification.DEFAULT_SOUND;

    notification.defaults |= Notification.DEFAULT_VIBRATE;
    notificationManager.notify(0, notification);      

}

Comment puis-je lancer l'application Android à partir du projet de bibliothèque ?

3voto

Tal Kanel Points 4049

Si votre problème est que l'activité que vous souhaitez fournir à l'intention n'est pas reconnue dans le projet de bibliothèque, vous pouvez utiliser la fonction packageManager.getLaunchIntentForPackage() pour obtenir l'intention de commencer l'activité de ce paquet qui ont LANCEUR DE CATÉGORIE attribut

String packageName = context.getPackageName();
Intent launchIntent = context.getPackageManager().getLaunchIntentForPackage(packageName);

vous pourriez alors remplacer new Intent(context, "need to launch the android application main activity") avec launchIntent

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X