개발 가이드
Local Navigation
- BlackBerry Device Software 프로그램과 통합
- 통합 검색
- 데이터를 찾을 수 있게 만들기
- SearchableEntity 객체에 대해 EntityBasedSearchable 클래스 정의
- SearchableEntity 클래스에서 데이터 요약
- Specifying what users can do with your data in search results
- EntityBasedSearchable 객체를 통합 검색 서비스에 등록
- 데이터 변경 사항에 대해 통합 검색 서비스에 알림
- 통합 검색 서비스로부터 응답 수신
- 콘텐츠 저장소에서 데이터 제거
- 다른 검색 엔진 사용
- 단말기에서 프로그램의 단일 인스턴스가 실행되도록 보장
- 단말기가 시작될 때 데이터 삽입
- 검색
- 단말기 상호 작용 지원
- 메시지 목록
- 사용자 정의 메시지
- 첨부 파일
- 캘린더
- 연락처 목록
- 작업 목록
- 전화
- BlackBerry Browser
- 메뉴 항목
- 자세한 정보 확인
- 용어
- 의견 제공
- 문서 수정 내역
- 법적 고지
BlackBerry Manuals & Help
>
개발자 문서
>
Java 개발 가이드 및 API 참조서
>
개발 가이드
Integration Guide - BlackBerry Java SDK - 7.0
검색 구성 및 시작
이 작업은 프로그램이 만드는 검색 가능 엔터티로 제한된 검색을 시작하는 방법을 보여 줍니다. UnifiedSearchServices.search() 메소드는 스레드 실행을 차단하므로 아래의 doSearch()는 별도의 스레드에서 이를 호출합니다.
- 필요한 클래스와 인터페이스를 가져옵니다.
import net.rim.device.api.unifiedsearch.*; import net.rim.device.api.unifiedsearch.searchables.*; import java.util.*;
- UnifiedSearchServices 객체에 대한 참조를 저장하기 위한 인스턴스 변수를 만듭니다.
public class MySearchScreen() { UnifiedSearchServices _uss = UnifiedSearchServices.getInstance(); - EntityBasedSearchable 객체에 대한 참조를 검색하고 인스턴스 변수에 지정합니다. 단말기에서 검색 가능 프로그램의 목록을 검색할 때 SearchableContentTypeConstants 값을 검색에 적합한 값으로 변경합니다. deviceSearchables 벡터에서 EntityBasedSearchable을 찾을 수 없는 경우 필요한 조치를 취해야 합니다.
MySearchable _searchable = null; Vector deviceSearchables = _uss.getDeviceSearchables(SearchableContentTypeConstants.CONTENT_TYPE_MEMO); for(int i = deviceSearchables.size() -1; i >=0; --i) { if(deviceSearchables.elementAt(i).getName().equals("name of your searchable")) { _searchable = (MySearchable) deviceSearchables.elementAt(i); } } // Do something if _searchable is still null - 검색을 시작할 메소드를 만듭니다. 검색 키워드를 매개 변수로 받아들입니다. 여기에서 프로그램은 BlackBerry 단말기 사용자가 제공하는 검색 키워드를 지정합니다. 이 메소드는 새 스레드를 호출하므로 String 매개 변수를 final로 선언합니다.
private void doSearch(final String keyword) { - 검색을 실행할 Thread 객체를 만듭니다.
Thread searchThread = new Thread(new Runnable() { public void run() { try { - 검색을 시작하고, 결과가 있으면 결과를 검색합니다. 결과가 있으면 결과를 다른 메소드로 보내 구문 분석합니다.
SearchResponse results = null; results = _uss.search(keyword, _searchable); if(results != null) { parseResponse(results); } - 발생하는 오류를 파악합니다.
} catch (Exception e) { // Do something about the error } - Thread 정의를 완료하고 실행합니다.
}, "Search Thread"); searchThread.start();
다음 주제: 검색 결과 처리
이전 주제: 검색