다른 검색 엔진 사용

ExternalSearchProvider 인터페이스에서는 BlackBerry 사용자가 통합 검색 서비스 외부에 있는 데이터를 검색할 수 있습니다. 홈 스크린에서 전체 검색 기능을 사용할 때 불만족스러운 검색 결과를 받을 경우 사용자는 다른 외부 검색 공급자를 클릭할 수 있습니다. 이 검색 공급자들은 ExternalSearchProvider 인터페이스를 구현합니다.

사용자가 검색 공급자를 클릭할 때 전체 검색 기능은 해당 ExternalSearchProvider에 대해 search()를 호출합니다. 검색 공급자는 네트워크 연결 또는 프로세스 간 통신 연결을 만들고, 원격 서버에서 검색을 호출하고, 결과를 검색하고, 결과를 사용자에게 표시합니다. 프로그램에서 원격 검색 엔진을 사용하는 경우, 통합 검색 서비스 콘텐츠 저장소의 검색 결과를 삽입하여 후속 검색의 속도와 효율성을 높이는 것을 고려해 볼 수 있습니다.

일부 미리 정의된 외부 검색 공급자로는 YouTube, Google 등이 있습니다. 타사 프로그램도 외부 검색 공급자에 액세스할 수 있습니다. UnifiedSearchServices.getSearchProviders() 메소드는 프로그램이 검색을 보낼 수 있는 등록된 ExternalSearchProvider 객체의 목록을 반환합니다.

EntityBasedSearchable 객체와 마찬가지로 SearchRegistry 객체를 사용하여 ExternalSearchProvider를 통합 검색 서비스에 등록해야 합니다. 자세한 내용은 "EntityBasedSearchable 객체를 통합 검색 서비스에 등록"을 참조하십시오.

코드 샘플: ExternalSearchProvider 인터페이스 구현

import net.rim.device.api.ui.image.Image;
import net.rim.device.api.ui.image.ImageFactory;
import net.rim.device.api.unifiedsearch.searchables.ExternalSearchProvider;
import net.rim.device.api.unifiedsearch.searchables.SearchableContentTypeConstants;
public class MySearchProvider implements ExternalSearchProvider {
    // A unique registration ID for this provider.
    private long _regId;
    // The external search provider icon.
    private Image _icon;
    // Constructor
    public MySearchProvider() {
        // Read the icon from the resource bundle
        Bitmap img = Bitmap.getBitmapResource("myicon.png");
        if(img != null) {
            _icon = ImageFactory.createImage(img);
        } else {
            _icon = null;
        }
    }
    // The provider name to be displayed.
    public String getProviderName() {
        return "Sample External Search Provider";
    }
    // The provider icon to be displayed.
    public Image getProviderIcon() {
        return _icon;
    }
    // The content type this provider offers.
    public long getContentType() {
        return SearchableContentTypeConstants.CONTENT_TYPE_MEDIA_MEMO;
    }
    // The search initiator will pass control to your application using this method.
    public void search(String keywords) {
        // Create network or IPC connections, send search keywords, and display the results.
    }
    // Allows the Unified Search Service and your application to keep track of 
    // this searchable's registration
    public long getRegistrationID()
    {
        return _regId;
    }
    public setRegistrationID(long id)
    {
        _regId = id;
    }
}

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