2016-02-12 19 views

回答

0
public class AppIconDrawable { 
    private HashMap<String, Drawable> drawables; 

    private static AppIconDrawable sharedInstance = null; 

    private AppIconDrawable(){ 
     drawables = new HashMap<>(); 
    } 

    public static AppIconDrawable getSharedInstance(){ 
     if (sharedInstance == null) 
      sharedInstance = new AppIconDrawable(); 

     return sharedInstance; 
    } 

    public void setDrawableForKey(String key, Drawable drawable){ 
     drawables.put(key, drawable); 
    } 

    public Drawable getDrawableForKey(String key){ 
     return drawables.get(key); 
    } 
} 

要保存圖標我用它,在那裏rp.process = com.android.smspush.WapPushManager

PackageManager manager = getActivity().getPackageManager(); 
List<ActivityManager.RunningAppProcessInfo> listProcesses = manager.getRunningAppProcesses(); 

for (ActivityManager.RunningAppProcessInfo info : listProcesses) { 

    try { 
     ApplicationInfo appinfo = manager.getApplicationInfo(info.processName, PackageManager.GET_META_DATA); 
     AppIconDrawable.getSharedInstance().setDrawableForKey(info.processName, manager.getApplicationIcon(appinfo)); 
    } catch (PackageManager.NameNotFoundException e) { 
     AppIconDrawable.getSharedInstance().setDrawableForKey(info.processName, context.getResources().getDrawable(R.drawable.ic_android_default)); 
    } 
} 

爲了讓圖標我用它,在那裏rp.process =融爲一體。 android.smspush.WapPushManager

holder.imgApp.setImageDrawable(AppIconDrawable.getSharedInstance().getDrawableForKey(rp.process)); 
0

您可以通過下面的代碼獲得頂部運行的應用程序:一旦你applicationInfo,你可以得到來自info的圖標。

ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE); 
List l = am.getRecentTasks(1, ActivityManager.RECENT_WITH_EXCLUDED); 
Iterator i = l.iterator(); 
PackageManager pm = this.getPackageManager(); 
while (i.hasNext()) { 
    ActivityManager.RunningAppProcessInfo info = (ActivityManager.RunningAppProcessInfo)(i.next()); 
    try { 
     CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(
     info.processName, PackageManager.GET_META_DATA)); 
     Drawable ico = info.loadIcon(pm); // Icon of the application 
     Log.w("LABEL", c.toString()); 
    } catch (Exception e) { 
     // Name Not FOund Exception 
    } 
} 
相關問題