Obtenção de informações sobre a maneira como seu aplicativo é executado no BlackBerry Messenger

Você pode usar BBMPlatformContextListener.appInvoked() para saber como seu aplicativo foi executado no BlackBerry Messenger e reunir dados relacionados, como usuário atual, contato, PPID e itens de caixa de perfil. Você pode usar essas informações para saber como os recursos do BBM que são integrados ao seu aplicativo estão sendo usados. Por exemplo, você pode alterar o comportamento de seu aplicativo de modo que ele seja aberto no contexto em que ele normalmente é executado, como ao exibir uma lista de realizações em uma caixa de perfil do usuário. Ele também pode ajudar você a determinar a importância desses recursos para o seu aplicativo.

A tabela a seguir mostra as informações contextuais que o BBMPlatformContextListener.appInvoked(reason, param, user) pode obter com cada constante de razão:

Constante de razão

O aplicativo é executado quando o usuário atual clica em

Param

Usuário

INVOKE_PROFILE_BOX_ITEM

Um item de caixa de perfil do usuário do aplicativo

O UserProfileBoxItem no qual o usuário clicou

O usuário cujo item de caixa de perfil foi clicado (pode ser o usuário atual)

INVOKE_PROFILE_BOX

Um cabeçalho de caixa de perfil do usuário do aplicativo

null

O usuário cuja caixa de perfil foi clicada (pode ser o usuário atual)

INVOKE_PERSONAL_MESSAGE

O link de mensagens pessoais do aplicativo no perfil de um contato

Uma string de mensagem pessoal (excluindo o link do aplicativo)

O contato cujo link de mensagens pessoais foi clicado

INVOKE_CHAT_MESSAGE

O link do aplicativo em uma mensagem de bate-papo do contato

null

O contato cujo link de mensagem de bate-papo foi clicado

Vamos observar alguns cenários

public appInvoked(final int reason, final Object param, final Presence user)
{
    /* Scenario 1: The current user clicks a contact’s profile box header 
     * for the app. */
        if(reason == BBMPlatformContext.INVOKE_PROFILE_BOX)
        {
            int ppid = getPPID(user);
            /* Add code to capture all the items in the user's profile box,
             * for example, activities and achievements) /*
        }
    /* Scenario 2: The current user clicks a contact’s profile box item for the app.
     * The app can capture whose profile box was clicked, and the associated profile
     * box item. */
        if(reason == BBMPlatformContext.INVOKE_PROFILE_BOX_ITEM)
        {
            Int ppid = getPPID(user);
            UserProfileBoxItem item = (UserProfileBoxItem) param;
            // display the profile box item, for example, a game score
            int score = Integer.parseInt(item.getCookie());
        }
    /* Scenario 3: The current user clicks a contact’s personal message link
     * in a contact's profile. The app can capture whose personal message 
     * was clicked and the personal message (minus the app link).*/
        if(reason == BBMPlatformContext.INVOKE_PERSONAL_MESSAGE)
        {
            int ppid = getPPID(user);
            String personalMessage = (String) param;
        }
    /* Scenario 4: The current user clicks a contact’s chat message link
     * in a contact's chat message. The app can capture whose chat message 
     * link was clicked.*/
        if(reason == BBMPlatformContext.INVOKE_CHAT_MESSAGE)
        {
            int ppid = getPPID(user);
            //  Add code to start an activity with the contact
        }
}
// A generic function to obtain a user's unique ID
public static int getPPID (Presence user)
{
    if (user instanceof UserProfile)
    {   // returns the current user's PPID
        return ((UserProfile) user).getPPID();
    }
    else if(user instanceof BBMPlatformContact)
    {   // returns the contact's PPID
    return ((BBMPlatformContact) user).getPPID();
    }
}
Próximo tópico: Solução de problemas

Estas informações foram úteis? Gostaríamos de receber seus comentários.