Obtención de información acerca de cómo se invoca su aplicación desde BlackBerry Messenger

Puede utilizar BBMPlatformContextListener.appInvoked() para capturar cómo se invoca su aplicación desde BlackBerry Messenger y para recopilar los datos relacionados, como el usuario actual, el contacto, el PPID y los elementos del cuadro de perfil. Puede utilizar esta información para saber cómo se utilizan las características de BBM integradas en su aplicación. Por ejemplo, tal vez desee cambiar el comportamiento de su aplicación para que se abra en el contexto en el que se invoca habitualmente, como al abrir una lista de logros en el cuadro de perfil de un usuario. También puede ayudarle a determinar la importancia de estas características para su aplicación.

La tabla siguiente muestra la información contextual que BBMPlatformContextListener.appInvoked(reason, param, user) puede capturar con cada constante de razón:

Constante de razón

La aplicación se invoca cuando el usuario actual hace clic

Parámetro

Usuario

INVOKE_PROFILE_BOX_ITEM

El elemento del cuadro de perfil de un usuario para la aplicación

El UserProfileBoxItem en el que se ha hecho clic

El usuario en cuyo elemento del cuadro de perfil se ha hecho clic (puede ser el usuario actual)

INVOKE_PROFILE_BOX

El encabezado del cuadro de perfil de un usuario para la aplicación

null

El usuario en cuyo cuadro de perfil se ha hecho clic (puede ser el usuario actual)

INVOKE_PERSONAL_MESSAGE

El vínculo del mensaje personal de la aplicación en el perfil de un contacto

La cadena del mensaje personal (excluyendo el vínculo a la aplicación)

El contacto en cuyo vínculo del mensaje personal se ha hecho clic

INVOKE_CHAT_MESSAGE

El vínculo a la aplicación del mensaje de chat de un contacto

null

El contacto en cuyo vínculo del mensaje de chat se ha hecho clic

Veamos algunas situaciones

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();
    }
}
Tema siguiente: Resolución de problemas

¿Le ha resultado útil esta información? Envíenos sus comentarios.