To get a list of information regarding all installed applications use the method getInstalledApplications() packagemanager:  
PackageManager packageManager = getPackageManager();
List<ApplicationInfo> list = 
           packageManager.getInstalledApplications(PackageManager.GET_META_DATA);   
The returned list has an object Applicationinfo for each installed application.
To filter and obtain only those that are from Category "android.intent.category.LAUNCHER" use the following method:  
private List<ApplicationInfo> checkForLaunchIntent(List<ApplicationInfo> list) {
    PackageManager packageManager = getPackageManager();
    ArrayList<ApplicationInfo> applist = new ArrayList<ApplicationInfo>();
    for (ApplicationInfo info : list) {
        try {
            if (null != packageManager.getLaunchIntentForPackage(info.packageName)) {
                applist.add(info);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    return applist;
}
Source
							
							
						 
Here’s a good start: How to check programmatically if an application is installed or not in Android?
– user28595
What does Voce mean by "consumed"? What have you tried to implement? Give us more information to help you progress on what you’ve tried to implement.
– rsicarelli