개발 가이드

Local Navigation

대화 상대 목록의 대화 상대 변경에 응답

시작하기 전에: BlackBerry Messenger 플랫폼에 프로그램 등록 작업을 완료하고 화면을 표시하는 클래스가 프로그램과 연결된 BBMPlatformContext 개체에 대한 참조를 전달하도록 합니다.
  1. 필요한 클래스와 인터페이스를 가져옵니다.
    import net.rim.blackberry.api.bbm.platform.*;
    import net.rim.blackberry.api.bbm.platform.service.*;
    import net.rim.device.api.ui.component.*;
  2. PresenceListener 인터페이스를 구현하고 MainScreen을 확장하는 클래스를 만듭니다. 이 화면 클래스의 생성자에서 프로그램과 연결된 BBMPlatformContext 개체를 전달합니다.
    public class MyBBMContactListScreen implements PresenceListener extends MainScreen
    {
        public MyBBMContactListScreen(BBMPlatformContext platformContext) 
        {
        }
    }
  3. 생성자에서 BBMPlatformContext.getContactListService().setPresenceListener()를 호출하여 PresenceListener를 프로그램에 할당합니다.
    public class MyBBMContactListScreen implements PresenceListener
    {
        public MyBBMContactListScreen(BBMPlatformContext platformContext) 
        {
            platformContext.getContactListService().setPresenceListener(this);
        }
    }
  4. MyBBMContactListScreen 클래스에서 PresenceListener.presenceUpdated() 메서드를 구현합니다. 다음 코드는 BlackBerry® Messenger 대화 상대 목록의 대화 상대가 변경되었음을 사용자에게 알려주는 대화 상자를 표시합니다. 다음 코드 샘플에서는 getEventName() 도우미 메서드를 사용하여 eventType 매개 변수를 구문 분석하고 읽을 수 있는 String을 반환합니다.
    public void presenceUpdated(BBMPlatformContact contact, int eventType)
    {
        final String str = "[" + getEventName(eventType) + "] was changed by " + contact.getDisplayName();
        Dialog.inform(str);
    }
    private String getEventName(int eventType)
    {
        String eventName;
        switch(eventType)
        {
            case PresenceListener.EVENT_TYPE_DISPLAY_PICTURE:
                eventName = "Display picture";
                break;
            case PresenceListener.EVENT_TYPE_DISPLAY_NAME:
                eventName = "Display name";
                break;
            case PresenceListener.EVENT_TYPE_PERSONAL_MESSAGE:
                eventName = "Personal Message";
                break;
            case PresenceListener.EVENT_TYPE_STATUS:
                eventName = "Status";
                break;
            default:
                eventName = "Default";
        }
    }

코드 샘플: 대화 상대 목록의 대화 상대 변경에 응답

다음 코드 샘플에서는 MyBBMContactListScreen을 푸시한 클래스가 이 프로그램의 BBMPlatformContext 개체에 액세스하여 이를 MyBBMContactListScreen 생성자에 전달했다고 가정합니다.

import net.rim.blackberry.api.bbm.platform.*;
import net.rim.device.api.ui.component.*;
public class MyBBMContactListScreen implements PresenceListener
{
    public MyClass(BBMPlatformContext platformContext) 
    {
       platformContext.getContactListService().setPresenceListener(this);
    }
    public void presenceUpdated(BBMPlatformContact contact, int eventType)
    {
        final String str = "[" + getEventName(eventType) + "] was changed by " + contact.getDisplayName();
        Dialog.inform(str);
    }
    private String getEventName(int eventType)
    {
        String eventName;
        switch(eventType)
        {
            case PresenceListener.EVENT_TYPE_DISPLAY_PICTURE:
                eventName = "Display picture";
                break;
            case PresenceListener.EVENT_TYPE_DISPLAY_NAME:
                eventName = "Display name";
                break;
            case PresenceListener.EVENT_TYPE_PERSONAL_MESSAGE:
                eventName = "Personal Message";
                break;
            case PresenceListener.EVENT_TYPE_STATUS:
                eventName = "Status";
                break;
            default:
                eventName = "Default";
        }
    }
}
Back To Top

이 정보가 도움이 되었습니까? 의견을 보내 주십시오.