Android 애플 리케이션에서 브라우저의 북마크를 가져오는 방법
Android 애플 리케이션에서 브라우저의 북마크를 가져오는 방법은?
직접 만든 Android 애플 리케이션에서 브라우저의 즐겨찾기에 액세스하는 방법이 있습니다.
이전 소개한 통화 기록과 마찬가지로 컨텐트 공급자라는기구를 사용할 수 있습니다.
컨텐트 공급자를 사용하는 기본 사용법은 getContentResolver () query () 메서드를 사용합니다.
그러나, 브라우저 북마크를 가져올 때이 방법이 아니라 Browser 클래스에서 구현되는 메서드를 사용하는 것이 더 쉽습니다.
브라우저의 북마크를 가져오는 방법
먼저 getContentResolver () query () 메서드를 사용하면 샘플 코드를 소개합니다.
이 방법은 API 참조를보고 이런 느낌 일까? 로 시도하는 코드입니다.
API 참조도 상수가 게재되어있을뿐 자세한 설명은 아무것도 쓰여 있지 않습니다.
다음과 같은 느낌입니다.
String [] projection = new String [] {
Browser.BookmarkColumns.BOOKMARK,
Browser.BookmarkColumns.CREATED,
Browser.BookmarkColumns.DATE,
Browser.BookmarkColumns.FAVICON,
Browser.BookmarkColumns.TITLE,
Browser.BookmarkColumns.URL,
Browser.BookmarkColumns.VISITS
};
Cursor c =
getContentResolver () query (
Browser.BOOKMARKS_URI, projection, null, null, null);
if (c.moveToFirst ()) {
do {
/ / 레코드마다의 처리} while (c.moveToNext ());
}
c.close ();
getContentResolver () query () 메서드에서 "Browser.BOOKMARKS_URI"라는 URI를 지정합니다.
이 URI에서 검색된 레코드를 보면, 책갈피뿐만 아니라 히스토리 (한번 방문한 URL)까지 얻을 수 버립니다.
Browser.BookmarkColumns.BOOKMARK라는 컬럼은 그것이 책갈피 여부를 나타내는 플래그 것이라고 생각합니다.
이므로, 북마크만을 취득하려면, getContentResolver () query () 메서드의 세 번째 인수 조건을 지정 할 필요가 있습니다. (위의 예제 코드에서는 null에 있습니다.)
하지만 API 레퍼런스는 Browser.BOOKMARKS_URI에서 검색할 레코드의 각 컬럼의 설명이 아무것도 쓰지 않기 때문에이 방법은 바람직한 방법은 아니라고 생각합니다.
그래서, 제대로 가장 쉬운 북마크 정보만 검색하는 방법이 있습니다.
Browser.getAllBookmarks () 메소드
Browser 클래스에 getAllBookmarks ()라는 메서드가 있습니다.
북마크 취득의 경우이 방법을 사용합니다.
이제 샘플 코드를 살펴 봅시다.
앞의 예제를 다시 작성합니다.
Cursor c = Browser.getAllBookmarks (getContentResolver ());
if (c.moveToFirst ()) {
do {
/ / 레코드마다의 처리} while (c.moveToNext ());
}
c.close ();
Browser.getAllBookmarks () 메소드를 사용하면 매우 깔끔하게하네요.
이 방법이라면, 역사 등의 URL은 떨어지지 않고 책갈피에 등록된 URL 목록을 검색할 수 있습니다.
레코드는 첫 번째 컬럼에 URL이 두번째 컬럼에 ID가 들어있는 상태이므로, URL의 캐릭터 라인을 취득하려면 아래와 같이 가져옵니다.
String url = c.getString (0);
또는
String url =
c.getString (c.getColumnIndex (Browser.BookmarkColumns.URL));
전자의 방법은 만약 테이블 사양이 바뀌고, 컬럼의 위치가 어긋나 버리 다니 일이 발생하고 제대로 잡히지 않습니다.
후자의 방법은 장황한 쓰는지도 모르지만, 이쪽이 좋을지도 모릅니다.
단, 책갈피가 저장되는 테이블 사양이 바뀌 다니 있는지 여부 모르기 때문에, 전자도 좋을지도 모르겠 네요.
원래 컬럼 이름이 바뀌어 버리면 후자도 동일하고 · · ·. 아무튼 그것은없는가.
또한, Android에서 브라우저의 즐겨찾기 취득에는 권한 설정이 필요합니다.
북마크 읽기 · 쓰기 권한
다음은 북마크를 추가하는 방법에 대해 설명합니다.











