У меня есть приложение, которое показывает мне все закладки.Я могу перечислить закладки, затем моя кнопка добавляет закладку.Я не реализовал код для обновления списка сразу, но когда я возвращаюсь, новая закладка отображается в списке.Это закладки по умолчанию, которые я добавляю и добавляю эти поля
map.put(Browser.BookmarkColumns.CREATED, creationTime);
map.put(Browser.BookmarkColumns.TITLE, addTitle);
map.put(Browser.BookmarkColumns.BOOKMARK, 1);
cr.update(Browser.BOOKMARKS_URI, map,"_id = " + cur.getInt(0), null);
, новая закладка отображается в списке, но когда я открываю браузер и просматриваю закладку закладок, все остальные закладки присутствуют, но не отображаютсявсе, что я создал.
Я проверил это на эмуляторах в версии 7 и 10, и это работает без проблем, но когда я пробую его на моем Samsung Galaxy S2, работающем на версии 2.3.3, он добавляет в список.Я прошел через устройство, и закладка создана. Я знаю это, потому что мой код настроен на добавление, если он не может найти, или просто переписывает, если он находит.
У меня установлено более одного браузера. На моем устройстве установлены Firefox и Opera.Firefox хранит свои собственные закладки, и я еще не использовал Opera
вот весь код добавления закладок
private void addBookmark(String addTitle, String addUrl) {
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(BOOKMARKS_URI, projection, android.provider.Browser.BookmarkColumns.BOOKMARK, null, null);
//first find out if this title has been used before
boolean found = false;
long creationTime = new Date().getTime();
if (cur.moveToFirst()) {
String title;
int count = 0;
int titleColumn;
do {
titleColumn = cur.getColumnIndex(BookmarkColumns.TITLE);
title = cur.getString(titleColumn);
if (title.equals(addTitle))
{
found = true;
ContentValues map = new ContentValues();
map.put(Browser.BookmarkColumns.CREATED, creationTime);
map.put(Browser.BookmarkColumns.TITLE, addTitle);
map.put(Browser.BookmarkColumns.BOOKMARK, 1);
map.put(Browser.BookmarkColumns.DATE, 0);
map.put(Browser.BookmarkColumns.VISITS, 0);
cr.update(Browser.BOOKMARKS_URI, map,"_id = " + cur.getInt(0), null);
Log.d(LOGTAG,"title found: "+ Integer.toString(count));
}
count++;
}while (cur.moveToNext());
}else {
Log.d(LOGTAG,"didn't move to first");
}
if (!found) {
cur = cr.query(BOOKMARKS_URI,
projection,
android.provider.Browser.BookmarkColumns.BOOKMARK,
null,
null);
// Adding a bookmark for a site the user has not been to.
ContentValues map = new ContentValues();
map.put(Browser.BookmarkColumns.TITLE, addTitle);
map.put(Browser.BookmarkColumns.URL, addUrl);
map.put(Browser.BookmarkColumns.CREATED, creationTime);
map.put(Browser.BookmarkColumns.BOOKMARK, 1);
map.put(Browser.BookmarkColumns.DATE, 0);
map.put(Browser.BookmarkColumns.VISITS, 0);
cr.insert(Browser.BOOKMARKS_URI, map);
}
}
это был последний код, который я пробовал, я установил значение посещений равным 100, и теперьэто показывает как пункт истории, но со звездой, показывающей это как фаворит.Это говорит мне, что я устанавливаю одно из этих значений неправильно или пропускаю одно.Вкладка «История» знает, что она любимая, но вкладка «Избранное» не
if (!found) {
cur = cr.query(BOOKMARKS_URI,
projection,
android.provider.Browser.BookmarkColumns.BOOKMARK,
null,
null);
//Adding a bookmark for a site the user has not been to.
ContentValues map = new ContentValues();
map.put(Browser.BookmarkColumns.TITLE, "Random title");
map.put(Browser.BookmarkColumns.URL, "http://www.bbc.co.uk");
map.put(Browser.BookmarkColumns.CREATED, System.currentTimeMillis());
map.put(Browser.BookmarkColumns.BOOKMARK, 1);
map.put(Browser.BookmarkColumns.DATE, 0L);
map.put(Browser.BookmarkColumns.VISITS, 100);
getContentResolver().insert(Browser.BOOKMARKS_URI, map);
}