关于二维码:Android-Zxing库中无法解析Browser.BookmarkColumns

Android - Browser.BookmarkColumns cannot be resolved in Zxing Library

我正在使用zxing库开发应用程序。我将zxing项目导入了我的工作场所。导入时有一个我一直面临的问题。
Browser.BookmarkColumns无法解析或不是类型。

下面是提供的代码和屏幕截图。一个小的提示就足够了...

BookmarkPickerActivity.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
public final class BookmarkPickerActivity extends ListActivity {

private static final String TAG = BookmarkPickerActivity.class.getSimpleName();

private static final String[] BOOKMARK_PROJECTION = { Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.URL };

static final int TITLE_COLUMN = 0;
static final int URL_COLUMN = 1;

private static final String BOOKMARK_SELECTION = Browser.BookmarkColumns.BOOKMARK +" = 1 AND" + Browser.BookmarkColumns.URL +" IS NOT NULL";

private Cursor cursor;

@Override
protected void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    cursor = getContentResolver().query(content://com.android.chrome.browser/bookmarks, BOOKMARK_PROJECTION, BOOKMARK_SELECTION, null, null);
    if (cursor == null) {
        Log.w(TAG,"No cursor returned for bookmark query");
        finish();
        return;
    }
    setListAdapter(new BookmarkAdapter(this, cursor));
}

@Override
protected void onDestroy() {
    if (cursor != null) {
        cursor.close();
    }
    super.onDestroy();
}

@Override
protected void onListItemClick(ListView l, View view, int position, long id) {
    if (!cursor.isClosed() && cursor.moveToPosition(position)) {
        Intent intent = new Intent();
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
        intent.putExtra(Browser.BookmarkColumns.TITLE, cursor.getString(TITLE_COLUMN));
        intent.putExtra(Browser.BookmarkColumns.URL, cursor.getString(URL_COLUMN));
        setResult(RESULT_OK, intent);
    } else {
        setResult(RESULT_CANCELED);
    }
    finish();
}
}

enter image description here


Bookmarks相关的大多数内容已在API级别23(Android 6.0)中删除。您已将compileSdkVersion(也称为Eclipse中的构建目标)设置为API级别23。可以将compileSdkVersion降低到更低的水平以克服此错误,但是代码本身在Android 6.0上不起作用。


选项1:将build.gradle文件上的compileSdkVersion 23更改为22以解决此问题。.

选项2:使用Reflection方法获取compileSdkVersion> = 23中的浏览器历史记录。


使用Zxing的新版本,该版本已更新为api 25