12

READ_HISTORY_BOOKMARKSの許可を得てデフォルトのブラウザで取得するようなクロムの閲覧履歴やブックマークを取得できますか? PS:私はちょうどそれが可能であることを知りたいですか?Googleのアンドロイドアプリでクロムの閲覧履歴/ブックマークを取得できます

+2

私は答えがノーだと思います。私は通常の場合、すなわちルートアクセスなしで話している、各アプリは、/データフォルダ内に保管し、他のアプリのフォルダへのアクセス許可を持っていない個々のデータを持っています。しかし、あなたがrootアクセス権を持っているなら、別のケースです。 – dumbfingers

答えて

14

はい、非常に可能です。このURI 使用:content://com.android.chrome.browser/bookmarksの代わり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ははエラーのコードをテストしたが、それは正常に動作する必要があります。重要なことは、使用するuriを知ることです。 thisthisを読むことが役に立ちます。

+3

どのようにして、どのURIをブックマーク(どちらを使用する必要があります)に適した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が(適切な)デバイスであるかを知る適切な方法はありますか? – Pascal

+7

これはもうMarshmallowでは機能しません:https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-bookmark-browser – user1406716

関連する問題