57 votes

Comment Facebook ajoute-t-il des numéros de badge sur l'icône de l'application dans Android?

Je sais qu'il y a plusieurs Qs ici que vous demander si il est possible d'ajouter des badges à une application android et ils finissent avec un PAS de réponse...

Mais de toute façon le dernier Facebook version bêta pour Android semble faire quelque chose qui, au moins, ressembler à un badge , même si elle n'est pas techniquement exactement que.

Dans ce post, un des intervenants a dit que c'est en quelque sorte lié à TouchWiz. Et elles ont également mentionner comme une caractéristique de la "S3 TouchWiz Jelly Bean Addon".

J'ai toujours souhaiterait obtenir des informations sur comment cela peut être fait et s'il existe une API pour ce que je peux utiliser dans mon propre application (lors de l'exécution dans un environnement approprié - à-dire le même appareil si FB illustre ce comportement) ?

23voto

Marcus Points 694

J'ai compris comment cela est fait pour les appareils Sony.

J'ai blogué à ce sujet ici. J'ai aussi posté une autre ALORS question à ce sujet ici.


Sony utilisation de dispositifs d'une classe nommée BadgeReciever.

  1. Déclarer l' com.sonyericsson.home.permission.BROADCAST_BADGE autorisation dans votre fichier manifeste:

  2. La diffusion d'un Intent de la BadgeReceiver:

    Intent intent = new Intent();
    
    intent.setAction("com.sonyericsson.home.action.UPDATE_BADGE");
    intent.putExtra("com.sonyericsson.home.intent.extra.badge.ACTIVITY_NAME", "com.yourdomain.yourapp.MainActivity");
    intent.putExtra("com.sonyericsson.home.intent.extra.badge.SHOW_MESSAGE", true);
    intent.putExtra("com.sonyericsson.home.intent.extra.badge.MESSAGE", "99");
    intent.putExtra("com.sonyericsson.home.intent.extra.badge.PACKAGE_NAME", "com.yourdomain.yourapp");
    
    sendBroadcast(intent);
    
  3. Fait. Une fois cette Intent est diffusée le lanceur doit afficher un badge sur votre icône de l'application.

  4. Pour supprimer le badge, il suffit d'envoyer une nouvelle émission, avec cette fois - SHOW_MESSAGE false:

    intent.putExtra("com.sonyericsson.home.intent.extra.badge.SHOW_MESSAGE", false);
    

J'ai exclu les détails sur comment j'ai trouvé ceci pour garder la réponse courte, mais tout est disponible sur le blog. Peut-être une lecture intéressante pour quelqu'un.

10voto

CommonsWare Points 402670

Mais de toute façon le dernier Facebook version bêta pour android est juste que...

Pas selon le fil de discussion du forum qui contient la capture d'écran que vous avez rejoint. Citant vakama94:

Eh bien, c'est en fait TouchWiz et pas seulement de l'application. J'ai un Galaxy S II running JellyBean 4.1.2 et il fait la même chose mais avec d'autres applications

Si Samsung a une API publique pour autoriser les applications à publier des numéros à être utilisés comme des badges, je ne peux pas dire. Cela pourrait être quelque chose qu'ils n'en privé avec quelques entreprises.

Vous êtes invités à fournir des preuves de voir ces badges sur un stock Android écran d'accueil, comme celui de la Nexus périphériques de la série.

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