Компонент WebView
имеет метод getFavicon()
, поэтому определенно возможно декодировать файлы ICO в Android. Вы можете взглянуть на источник Android , чтобы увидеть, как анализируются файлы ICO. Я быстро посмотрел, но не могу найти нужную часть.
В качестве альтернативы, вы должны использовать SDK, чтобы получать значки для вас. Однако я быстро попробовал и не могу заставить его работать.
Для чего стоит вот мой тестовый код, снова отмечая, что это не работает :
String url = "http://stackoverflow.com";
WebView wv = new WebView(this);
wv.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
Log.i("HelloAndroid","Loaded " + url);
Log.i("HelloAndroid","Icon " + (view.getFavicon() == null ? "not" : "") + " found");
}
});
WebIconDatabase wid = WebIconDatabase.getInstance();
wid.requestIconForPageUrl(url, new WebIconDatabase.IconListener() {
public void onReceivedIcon(String url, Bitmap icon) {
Log.i("HelloAndroid","Found Icon for " + url);
}
});
wv.loadUrl("http://stackoverflow.com");
Log.i("HelloAndroid","Loading " + url);
Возможно, проблема в том, что я не добавляю WebView
к видимому View
. Если ты получишь это на работу, мне будет интересно услышать, что ты сделал.
Извините, что дал два полных ответа, но я подумал, что стоит опубликовать то, что я нашел.