私はこのコードを使用してAndroidアプリのアイコンを取得しています:
Drawable icon = icon = p.applicationInfo.loadIcon(context.getPackageManager());
ここで、pはPackageInfo
クラスオブジェクトです。
クライアントからのリクエストとレスポンスを処理するAndroid用サーバーを実装しました。ここでGET request
、ブラウザであるクライアントからを送信すると、サーバーはhtmlページを生成します。
問題は、取得したAndroidがインストールされたアプリアイコンをhtmlページに表示する必要があることです。これを行うには、次のコードを使用しました。
returnHtml += "<tr>";
returnHtml += "<td><img src=" + icon +" /></td>";
returnHtml += "<td>" + apps[0] + "</td>";
returnHtml +="<td>" + apps[1] + "</td>";
returnHtml += "<td>" + apps[2] + "</td>";
returnHtml +="<td>" + apps[3] + "</td>";
returnHtml +="</tr>";
基本的に、ここではそれぞれのアプリ情報を含むテーブル行を生成し、最初の列にそれぞれのアプリアイコンを表示していますが、デフォルトのアイコン画像(疑問符が付いた小さな画像)を表示する代わりに、それぞれのアプリアイコンを表示していません。
「icon」は「AndroidDrawable」クラスオブジェクトです。取得したアイコンを何らかの形式に変換する必要がありますか、それとも最初にアイコンをいくつかのフォルダに保存する必要がありますか?
私のhtmlページはassets
書き込み可能なフォルダに保存されているので、そこにアイコン画像を保存することはできません。ドローアブルオブジェクトからのみアイコン画像を直接表示する解決策はありますか?