たとえば、ユーザーが入力したURLのファビコンを取得しようとしています
_url = "google.com";
HttpUrlConnection を使用して/favicon.ico
、ホスト URL の拡張子からファビコンのビットマップを取得します。
String faviconString = Uri.parse(_url).getHost() + "/favicon.ico";
URL faviconUrl = null;
Bitmap favicon = null;
try
{
faviconString = "http://" + faviconString;
faviconUrl = new URL(faviconString);
HttpURLConnection connection = (HttpURLConnection) faviconUrl.openConnection();
connection.setDoInput(true);
connection.connect();
favicon = BitmapFactory.decodeStream(connection.getInputStream());
}
catch (IOException e)
{
e.printStackTrace();
}
return favicon;
ただし、ユーザーはおそらくhttp://
orを指定しないhttps://
ため、自分で追加する必要があります。私が抱えている問題はhttp://
、URL の前に追加するとすべて正常に動作することですがhttps://
、一部のサイトではファビコンが返され、他のサイトでは null が返されるだけです。を使用しているページを確認するにはどうすればよいhttps
ですか? http://
すべての場合に追加する必要がありますか?厳密に制限しhttps
、使用に対して null を返すWeb サイトはありますhttp
か?