연결된 연락처에 대한 정보 공급자 만들기

추상 LinkedContactInfoProvider 클래스를 확장하는 클래스를 만들어서 연결된 연락처에 대한 정보를 정의할 수 있습니다. 이 정보는 사용자가 프로그램에 있는 연락처와 연결된 연락처를 볼 때 BlackBerry 단말기의 주소록 프로그램에 나타납니다.
  1. 필요한 클래스와 인터페이스를 가져옵니다.
    import net.rim.blackberry.api.pdap.contactlinking.*;
    import net.rim.device.api.ui.*;
    import net.rim.device.api.ui.component.*;
    
  2. LinkedContactInfoProvider를 확장하는 클래스를 만듭니다.
    public class SampleLinkedContactInfoProvider extends LinkedContactInfoProvider
    {
        private Image _image;
        private String _appName;
        public SampleLinkedContactInfoProvider(Image image, String appName)    
        {        
            _image = image;
            _appName = appName;                
        }
    
  3. getAppImage()를 구현하고 프로그램을 나타내는 아이콘을 반환합니다. 사용자가 주소록 프로그램에서 연락처를 볼 때 연결된 연락처에 대해 정보가 나타나려면 메소드가 이미지를 반환해야 합니다.
    public Image getAppImage()
    {
        return _image;        
    }
    
  4. getAppName()을 구현하고 프로그램 이름을 반환합니다. 사용자가 주소록 프로그램에서 연락처를 편집할 때 연결된 연락처에 대한 정보가 나타나려면 메소드가 이름을 반환해야 합니다.
    public String getAppName()
    {        
        return _appName;
    }  
    
  5. 프로그램이 지원하는 LinkedContactInfoProvider 필드(사용자 이름, 대화 가능 여부 또는 상태)를 표시하기 위해 isSupported()를 구현합니다. 기본적으로 필드가 지원되지 않습니다. 프로그램이 필드를 지원하는 경우에만 isSupported()를 구현해야 합니다.
    public boolean isSupported(int capability)
    {
        switch(capability)
        {
            case LinkedContactInfoProvider.STATUS:
            case LinkedContactInfoProvider.AVAILABILITY:
            case LinkedContactInfoProvider.USER_NAME:
                return true;
            default:
                return false;
        }
    }
    
  6. requestFields()를 구현하여 주소록 프로그램에서 연락처에 대해 표시할 정보를 지정합니다. 메소드는 주소록 프로그램에서 연결된 연락처에 대해 정보를 표시해야 할 때 프레임워크에 의해 호출됩니다. isSupported()에서 지원 대상으로 정의한 필드에 따라 연락처의 이름, 상태 및 대화 가능 여부를 지정합니다.
    public void requestFields(String contactID, final LinkedContactCallback callback, int fields)
    {        
        LinkableContact contact = ContactListScreen.getUserForID(contactID);
        if((fields & LinkedContactInfoProvider.AVAILABILITY) != 0)
        {
            callback.setAvailability(LinkedContactInfoProvider.AVAILABILITY_ONLINE);
        }
        if((fields & LinkedContactInfoProvider.STATUS) != 0)
        {            
            callback.setStatusString("<Sample contact status>");
        }       
        if((fields & LinkedContactInfoProvider.USER_NAME) != 0)
        {
            callback.setUserName(contact.toString());
        }
    }    
    
  7. 정보 공급자를 프로그램에 등록합니다.
    LinkedContactUtilities.registerLinkedContactInfoProvider(
        new SampleLinkedContactInfoProvider(imageBlue, "Demo App 1"), 
        APPLICATION_ID,
        LinkedContactConstants.COMPOSE_SN_MENU_GROUP);
    
    이 예제에서는 LinkedContactConstants.에서 COMPOSE_SN_MENU_GROUP 필드를 사용하여 프로그램을 소셜 네트워킹 프로그램으로 등록합니다.
주소록 프로그램에서 사용자가 연락처 중 하나와 연결된 연락처를 표시하면 정보 공급자에서 정의한 정보가 연락처 화면에 표시됩니다. 프레임워크에 의해 정보의 레이아웃이 결정됩니다. 이 예제에서는 프로그램이 소셜 네트워킹 프로그램으로 정의되었기 때문에 연락처의 소셜 네트워크 섹션에 정보가 표시됩니다.

코드 샘플: 연결된 연락처에 대한 정보 공급자 만들기

연결된 연락처에 대한 정보 공급자를 만드는 방법의 예는 BlackBerry Java SDK에 포함된 Contact Linking Demo(연락처 연결 데모) 샘플 프로그램의 SampleLinkedContactInfoProvider 클래스를 참조하십시오.

다음 주제: 작업 목록

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