根据these changes on Android 6.0我无法编译我的代码,因为此行Browser.BOOKMARKS_URI
生成无法解决符号错误。
我尝试过编写像这样的代码
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.M){
mCur = ctx.getContentResolver().query(Browser.BOOKMARKS_URI,
Browser.HISTORY_PROJECTION, null, null, "date DESC");
}else{
//TODO code for newer version
}
我正在用api23编译我的代码但是无法构建项目,我应该降低到api22还是有其他方法来使用api23编译这段代码。
答案 0 :(得分:3)
从Marshmallow开始,您将无法真正使用书签。
来自Android issue tracker #2805:
全球书签不再可用。他们还没有真正做到 无论如何,长期以来的任何事情,因为这些天的浏览器一般都保留 他们自己的内部书签数据,而不是把它们放在全球 供应商。使用全球提供商的应用也应切换到 在内部维护它们。
然而,他们仍然可以使用旧版Android,但需要注意上面提到的警告。要在继续针对API 23进行编译的同时支持旧版Android,您需要对旧URI进行硬编码。
Looking at the Lollipop source,URI定义为
public static final Uri BOOKMARKS_URI = Uri.parse("content://browser/bookmarks");
在您自己的代码中定义并按照以前的方式继续操作,但请确保您仅在API 22及更低版本上使用它。