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
Trả lời
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 this và this có thể hữu ích.
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
Đ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
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