如何在Android 6.0(API 23)中继续使用浏览器书签更改

7
在我的应用中,我使用了一些函数,在使用Android 6.0(buildToolsVersion "23.0.1")时出现了未知的情况,这些函数包括:Browser.getAllVisitedUrls(getContentResolver());、BookmarkColumns.URL等。
我该如何在Android 6.0及以上版本中使用相同的函数呢?
Android 6.0发生更改的事项列表中,我看到了以下内容:

浏览器书签更改

此版本删除了全局书签的支持。android.provider.Browser.getAllBookmarks()和android.provider.Browser.saveBookmark()方法已被删除。同样,READ_HISTORY_BOOKMARKS和WRITE_HISTORY_BOOKMARKS权限也已被删除。如果您的应用程序定位于Android 6.0(API级别23)或更高版本,请不要从全局提供程序中访问书签或使用书签权限。相反,您的应用程序应在内部存储书签数据。

这究竟意味着什么?相反,您的应用程序应在内部存储书签数据???
我曾经使用 Chrome 浏览器应用程序访问过浏览过的网站历史记录(当然是在用户明确允许的情况下),如何继续进行这样的操作?

1
“如何在未来使用相同的功能”-- 你不能。 “这到底是什么意思?相反,您的应用程序应该在内部存储书签数据?”-- 如果您正在使用书签提供程序来存储自己的书签(例如,您编写了自己的Web浏览器),请将书签存储在自己的数据存储中(例如,SQLite数据库)。 - CommonsWare
@CommonsWare 谢谢,这意味着获取 Chrome 应用程序的浏览器历史记录是不可能的吗?这将使我的应用程序失去一个非常有用的功能。所以这不再可能了吗?https://dev59.com/HWcs5IYBdhLWcg3wGgJc - user1406716
2
这意味着无法通过Android SDK获取Chrome应用程序的浏览器历史记录?我不知道Chrome团队是否通过其他公开文档和支持的公共API公开了浏览器历史记录。 - CommonsWare
@CommonsWare 谢谢,我想你可以把你的回答添加为答案。 - user1406716
1个回答

7

如何在Android 6.0中继续使用相同的函数?

就Android SDK而言是不行的。

"Instead, your app should store bookmarks data internally"这句话确切意思是什么?

如果您正在使用书签提供程序来存储自己的书签(例如,您编写了自己的Web浏览器),请将书签存储在自己的数据存储区中(例如,SQLite数据库)。

最好现在编写一些代码并进行部署,这样设备升级到Android 6.0的用户就不会被锁定在您放入“书签提供程序”中的书签之外。

这意味着无法获取Chrome应用程序的浏览器历史记录吗?

至少不能通过Android SDK的“Browser提供程序”来实现。我不知道Chrome团队是否通过其他公开支持的API公开了浏览器历史记录。对于任何其他Android Web浏览器(例如Firefox),情况也是如此。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接