Advertisement
Guest User

Untitled

a guest
Jul 26th, 2016
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.35 KB | None | 0 0
  1. PackageManager packmngr = this.getPackageManager();
  2. Intent ints = new Intent(Intent.ACTION_MAIN, null)
  3. ints.addCategory(Intent.CATEGORY_LAUNCHER);
  4. List<ResolveInfo> list = packmngr.queryIntentActivities(ints, PackageManager.PERMISSION_GRANTED);
  5.  
  6. for(ResolveInfo rlnfo: list)
  7. {
  8. //Adjust the code and do tests within here.
  9. Log.i("ACTIVITY INFO: ", rlnfo.activityInfo.toString());
  10. Log.i("ACTIVITY NAME: ",rlnfo.resolvePackageName.toString());
  11. }
  12.  
  13. new AppsUtil(this).printInstalledAppPackages(AppsUtil.AppType.SYSTEM);
  14.  
  15. import java.util.ArrayList;
  16. import java.util.List;
  17.  
  18. import android.content.Context;
  19. import android.content.pm.ApplicationInfo;
  20. import android.content.pm.PackageInfo;
  21. import android.content.pm.PackageManager;
  22. import android.content.pm.PackageManager.NameNotFoundException;
  23. import android.util.Log;
  24.  
  25. public class AppsUtil
  26. {
  27. public static final String TAG = "PackagesInfo";
  28. private Context _context;
  29. private ArrayList<PckgInfo> _PckgInfoList;
  30.  
  31. public enum AppType
  32. {
  33. ALL {
  34. @Override
  35. public String toString() {
  36. return "ALL";
  37. }
  38. },
  39. USER {
  40. @Override
  41. public String toString() {
  42. return "USER";
  43. }
  44. },
  45. SYSTEM {
  46. @Override
  47. public String toString() {
  48. return "SYSTEM";
  49. }
  50. }
  51. }
  52.  
  53. class PckgInfo
  54. {
  55. private AppType appType;
  56. private String appName = "";
  57. private String packageName = "";
  58. private String versionName = "";
  59. private int versionCode = 0;
  60.  
  61. private void prettyPrint()
  62. {
  63. Log.i(TAG, appName + "n AppType: " + appType.toString() + "n Package: " + packageName + "n VersionName: " + versionName + "n VersionCode: " + versionCode);
  64. }
  65. }
  66.  
  67. public AppsUtil(Context context)
  68. {
  69. super();
  70. this._context = context;
  71. this._PckgInfoList = new ArrayList<PckgInfo>();
  72. }
  73.  
  74. public void printInstalledAppPackages(AppType appType)
  75. {
  76. retrieveInstalledAppsPackages();
  77. Log.i(TAG, "");
  78. for (int i = 0; i < _PckgInfoList.size(); i++)
  79. {
  80. if (AppType.ALL == appType)
  81. {
  82. _PckgInfoList.get(i).prettyPrint();
  83. }
  84. else
  85. {
  86. if (_PckgInfoList.get(i).appType == appType)
  87. _PckgInfoList.get(i).prettyPrint();
  88. }
  89. }
  90. }
  91.  
  92. public ArrayList<PckgInfo> getInstalledAppPackages(AppType appType)
  93. {
  94. retrieveInstalledAppsPackages();
  95. ArrayList<PckgInfo> resultPInfoList = new ArrayList<PckgInfo>();
  96.  
  97. if (AppType.ALL == appType)
  98. {
  99. return _PckgInfoList;
  100. }
  101. else
  102. {
  103. for (int i = 0; i < _PckgInfoList.size(); i++)
  104. {
  105. if (_PckgInfoList.get(i).appType == appType)
  106. resultPInfoList.add(_PckgInfoList.get(i));
  107. }
  108. return resultPInfoList;
  109. }
  110. }
  111.  
  112. private void retrieveInstalledAppsPackages()
  113. {
  114. PackageManager pm = _context.getPackageManager();
  115. List<PackageInfo> packs = pm.getInstalledPackages(0);
  116. for (PackageInfo pi : packs)
  117. {
  118. try
  119. {
  120. PckgInfo newInfo = new PckgInfo();
  121. ApplicationInfo ai = pm.getApplicationInfo(pi.packageName, 0);
  122.  
  123. newInfo.appType = getAppType(ai);
  124. newInfo.appName = pi.applicationInfo.loadLabel(pm).toString();
  125. newInfo.packageName = pi.packageName;
  126. newInfo.versionName = pi.versionName;
  127. newInfo.versionCode = pi.versionCode;
  128. _PckgInfoList.add(newInfo);
  129. }
  130. catch (NameNotFoundException e)
  131. {
  132. e.printStackTrace();
  133. }
  134. }
  135. }
  136.  
  137. AppType getAppType(ApplicationInfo ai)
  138. {
  139. AppType resultType ;
  140. if (isUserApp(ai))
  141. resultType = AppType.USER;
  142. else
  143. resultType = AppType.SYSTEM;
  144.  
  145. return resultType;
  146. }
  147.  
  148. boolean isUserApp(ApplicationInfo ai)
  149. {
  150. int mask = ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_UPDATED_SYSTEM_APP;
  151. return (ai.flags & mask) == 0;
  152. }
  153. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement