【问题标题】:permission READ_HISTORY_BOOKMARKS is not working on API 23READ_HISTORY_BOOKMARKS 权限不适用于 API 23
【发布时间】:2018-03-31 09:42:15
【问题描述】:

我在 Api 18 上做了这个,它可以工作:

String[] proj = new String[] { BookmarkColumns.TITLE,BookmarkColumns.URL };
        Uri uriCustom = Uri.parse("content://com.android.chrome.browser/bookmarks");
        String sel = 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(BookmarkColumns.TITLE));
                url = mCur.getString(mCur.getColumnIndex(BookmarkColumns.URL));
                Log.e("title" , title);
                Log.e("url" , url);
                // Do something with title and url
                mCur.moveToNext();
            }
        }

但是在 API 23 上它不起作用我在 Android.Manifest 上添加了这个

 <uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/>

【问题讨论】:

  • 您遇到的问题是什么,我是错误的,请在此处添加您的日志。并检查应用是否崩溃
  • @AbdulWaheed on API 24 我没有看到 mCur 为空的日志,但我在 chrome 中有一个历史记录

标签: android


【解决方案1】:

参考此链接介绍Android 6.0 对书签浏览器行为的更改https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-bookmark-browser

此版本删除了对全局书签的支持。这 android.provider.Browser.getAllBookmarks() 和 android.provider.Browser.saveBookmark() 方法现在被移除。 同样,READ_HISTORY_BOOKMARKS 和 WRITE_HISTORY_BOOKMARKS 权限被删除。如果您的应用面向 Android 6.0(API 级别 23) 或更高版本,请勿访问全球提供商的书签或使用 书签权限。相反,您的应用应该存储书签 内部数据。

【讨论】:

    猜你喜欢
    • 2016-01-18
    • 2017-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多