12

chúng tôi có thể nhận được dấu trang/dấu trang duyệt web chrome như chúng tôi nhận được trong trình duyệt mặc định bằng quyền READ_HISTORY_BOOKMARKS không? PS: Tôi chỉ muốn biết là nó có thể?chúng ta có thể nhận được lịch sử duyệt web/dấu trang trong ứng dụng Android của chúng tôi

+2

Tôi nghĩ câu trả lời là không. Tôi đang nói về trường hợp bình thường nghĩa là không có quyền truy cập root, mỗi ứng dụng có dữ liệu riêng lẻ được lưu trong thư mục/data và không có quyền truy cập vào thư mục của ứng dụng khác. Tuy nhiên nếu bạn có quyền truy cập root, đó là trường hợp khác. – dumbfingers

Trả lời

14

Có thể thực hiện được rất nhiều. Sử dụng uri này: content://com.android.chrome.browser/bookmarks thay vì 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 kiểm tra mã lỗi nhưng nó phải hoạt động tốt. Điều quan trọng là biết uri sử dụng. Đọc thisthis có thể hữu ích.

+3

Làm thế nào để tìm ra URI WHICH là cái nào tốt nhất cho Dấu trang (Cái nào phải được sử dụng)? Tôi sử dụng Browser.BOOKMARKS_URI (= Uri.parse ("content: // browser/bookmarks")): hoạt động tốt trên hầu hết các thiết bị, nhưng, trên một số thiết bị, (có thể sử dụng Chrome làm mặc định), nó kích hoạt "java.lang .IllegalArgumentException: Nội dung URL không xác định: // browser/bookmarks " Tôi có nên dùng thử URI Chrome trong trường hợp này không? "content: //com.android.chrome.browser/bookmarks" Cách thích hợp để biết URI dấu trang nào là (tốt) để sử dụng trên (một thiết bị/cấu hình nhất định)? – Pascal

+7

Điều này sẽ không hoạt động trong Marshmallow nữa: https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-bookmark-browser – user1406716

Các vấn đề liên quan