12

우리는 READ_HISTORY_BOOKMARKS 권한을 사용하여 기본 브라우저에서 얻을 수있는 것처럼 크롬 브라우징 기록/책갈피를 얻을 수 있습니까? 추신 : 나는 그게 가능하다는 것을 알고 싶습니까?우리는 안드로이드 애플 리케이션에서 크롬 검색 기록/책갈피를 얻을 수 있습니까

+2

저는 대답이 '아니오'라고 생각합니다. 나는 루트 액세스없이 정상적인 경우에 대해 이야기하고 있습니다. 각 앱에는/data 폴더 내에 보관 된 개별 데이터가 있으며 다른 앱의 폴더에 대한 액세스 권한이 없습니다. 그러나 루트 액세스 권한이있는 경우 다른 경우입니다. – dumbfingers

답변

14

네, 매우 가능합니다. 사용이 URI : 대신 Browser.BOOKMARKS_URI

String[] proj = new String[] { Browser.BookmarkColumns.TITLE,Browser.BookmarkColumns.URL }; 
Uri uriCustom = Uri.parse("content://com.android.chrome.browser/bookmarks"); 
String sel = Browser.BookmarkColumns.BOOKMARK + " = 0"; // 0 = history, 1 = bookmark 
Cursor mCur = getContentResolver().query(uriCustom, proj, sel, null, null); 
mCur.moveToFirst(); 
@SuppressWarnings("unused") 
String title = ""; 
@SuppressWarnings("unused") 
String url = ""; 

if (mCur.moveToFirst() && mCur.getCount() > 0) { 
    boolean cont = true; 
    while (mCur.isAfterLast() == false && cont) { 
     title = mCur.getString(mCur.getColumnIndex(Browser.BookmarkColumns.TITLE)); 
     url = mCur.getString(mCur.getColumnIndex(Browser.BookmarkColumns.URL)); 
     // Do something with title and url 
     mCur.moveToNext(); 
    } 
} 

havent 한의 content://com.android.chrome.browser/bookmarks는 오류 코드를 테스트하지만 잘 작동합니다. 중요한 것은 사용할 uri를 아는 것입니다. thisthis을 읽으면 도움이 될 것입니다.

+3

북마크 (어느 쪽을 사용해야합니까)에 대해 URI가 좋은지 알아내는 방법은 무엇입니까? Browser.BOOKMARKS_URI (= Uri.parse ("content : // browser/bookmarks")) : 대부분의 장치에서 정상적으로 작동하지만 일부 장치에서는 (아마도 Chrome을 기본값으로 사용하는 경우) "java.lang .IllegalArgumentException : 알 수없는 URL 콘텐츠 : // browser/bookmarks " 이 경우 Chrome URI를 사용해 야하나요? "content : //com.android.chrome.browser/bookmarks"(어떤 장치/구성에서) 어떤 북마크 URI가 (좋은) URI인지 알 수있는 적절한 방법은 무엇입니까? – Pascal

+7

Marshmallow에서 더 이상 작동하지 않습니다. https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-bookmark-browser – user1406716