15
A
回答
29
try {
String pkg = "com.app.my";//your package name
Drawable icon = getContext().getPackageManager().getApplicationIcon(pkg);
imageView.setImageDrawable(icon);
} catch (PackageManager.NameNotFoundException ne) {
}
檢查here瞭解更多詳情。
+0
完美的答案。我向你推薦了@Ponmalar –
3
試試這個方法:建立一個叫做PackageInformation
類:
public class PackageInformation {
private Context mContext;
public PackageInformation(Context context) {
mContext = context;
}
class InfoObject {
public String appname = "";
public String pname = "";
public String versionName = "";
public int versionCode = 0;
public Drawable icon;
public void InfoObjectAggregatePrint() { //not used yet
Log.v(appname, appname + "\t" + pname + "\t" + versionName + "\t" + versionCode);
}
}
private ArrayList <InfoObject> getPackages() {
ArrayList <InfoObject> apps = getInstalledApps(false);
final int max = apps.size();
for (int i = 0; i < max; i++) {
apps.get(i).prettyPrint();
}
return apps;
}
public ArrayList <InfoObject> getInstalledApps(boolean getSysPackages) {
ArrayList <InfoObject> res = new ArrayList <InfoObject>();
List <PackageInfo> packs = mContext.getPackageManager().getInstalledPackages(0);
for (int i = 0; i < packs.size(); i++) {
PackageInfo p = packs.get(i);
if ((!getSysPackages) && (p.versionName == null)) {
continue;
}
InfoObject newInfo = new InfoObject();
newInfo.appname = p.applicationInfo.loadLabel(mContext.getPackageManager()).toString();
newInfo.pname = p.packageName;
newInfo.versionName = p.versionName;
newInfo.versionCode = p.versionCode;
newInfo.icon = p.applicationInfo.loadIcon(mContext.getPackageManager());
res.add(newInfo);
}
return res;
}
}
抱膝這個什麼地方,現在從你的工作Activity類訪問信息做到這一點:
PackageInformation androidPackagesInfo = new PackageInformation(this);
ArrayList <InfoObject> appsData = androidPackagesInfo.getInstalledApps(true);
for (InfoObject info: appsData) {
Toast.makeText(MainActivity.this, info.appname, 2).show();
Drawable somedrawable = info.icon;
}
3
我發現它最簡單的方法:
private List<ResolveInfo> installedApps() {
final Intent main_intent = new Intent(Intent.ACTION_MAIN, null);
main_intent.addCategory(Intent.CATEGORY_LAUNCHER);
return package_manager.queryIntentActivities(main_intent, 0);
}
現在要獲取圖標,請使用:
for(ResolveInfo ri : installedApps()) {
// to get drawable icon --> ri.loadIcon(package_manager)
}
相關問題
- 1. 在Android中獲取所有安裝的應用程序圖標:java.lang.ClassCastException
- 2. 獲取所有安裝的應用程序的圖標列表
- 3. 在Unity中獲取Android安裝的應用程序圖標
- 4. 在Android中獲取安裝的快捷方式的應用程序圖標
- 5. 在android中獲取所有已安裝應用程序的緩存目錄
- 6. 獲取所有安裝的應用程序的列表
- 7. 使用Category.LAUNCHER獲取所有已安裝的應用程序
- 8. 如何獲取用戶安裝的所有應用程序?
- 9. 如何獲取安裝在Android手機上的所有應用程序
- 10. 如何獲取所有安裝的應用程序列表?
- 11. android-獲取應用程序安裝在設備中的異常
- 12. 如何獲取已安裝應用程序圖標的列表
- 13. Xamarin Android:使用圖標獲取安裝的應用程序列表
- 14. 在安裝有意圖的Android中安裝較新版本的應用程序
- 15. Android如何獲取應用程序已執行/打開的所有已安裝的應用程序的次數
- 16. 如何獲取安裝在Android中的應用程序的圖標xpm圖標文件
- 17. 獲取安裝的應用程序
- 18. 獲取已安裝的應用程序圖標的程序列表
- 19. 如何獲取Android中已安裝應用程序的列表?
- 20. 獲取應用程序在Android 2.2中安裝時間?
- 21. 獲取所有安裝的應用程序列表中的Windows Phone 8
- 22. 的Android得到所有安裝的應用程序
- 23. 獲取已安裝的Android應用程序的列表
- 24. 在安裝過程中獲取應用程序的路徑
- 25. 獲取安裝我的應用程序的所有設備的UDID的方法
- 26. 如何獲取iPhone中所有安裝的應用程序列表(越獄)?
- 27. 獲取Django中所有安裝的應用程序及其屬性列表
- 28. Android:安裝新的HelloWorld應用程序,重置一些應用程序圖標
- 29. 獲取安卓手機中的所有應用程序
- 30. 在安裝程序類中獲取應用程序目錄
從Android 3.0開始,您可能希望獲得更大的啓動器圖標,以至於無法按照您所描述的方式進行操作。如果是這樣,也許我下面的問題的答案可以幫助你:http://stackoverflow.com/questions/4600740/getting-app-icon-in-android/16279240#16279240 –