(PackageManager)資訊類
-
- ApplicationInfo
- ComponentInfo
- ActivityInfo
- ProviderInfo
- ServiceInfo
- InstrumentationInfo
- PermissionGroupInfo
- PermissionInfo
- 用例
- ApplicationInfo
- ResolveInfo
- PackageInfo
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//擷取包名PackageManager PackageInfo ApplicationInfo ActivityInfo
//擷取包管理器
PackageManager pm=this.getPackageManager();
//擷取所有的包資訊
List<PackageInfo> packageInfos=pm.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES);
for (PackageInfo packageInfo : packageInfos) {
//擷取應用程式資訊(<application>标簽)
ApplicationInfo applicationInfo=packageInfo.applicationInfo;
//應用程式包名
Log.i("liujun", "PackageInfo包名:---"+applicationInfo.packageName);
}
//
//建立意圖
Intent intent=new Intent();
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
//擷取解析資訊對象集合
List<ResolveInfo> resolveInfos=pm.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
for (ResolveInfo resolveInfo : resolveInfos) {
//擷取應用程式包名
String packName=resolveInfo.activityInfo.packageName;
Log.i("liujun", "ResolveInfo包名:--"+packName);
}
Log.i("liujun", "packageInfos長度:--"+packageInfos.size());
Log.i("liujun", "ResolveInfo長度:--"+resolveInfos.size());
/**
* 結果表明packageInfos.size()會多于resolveInfos.size()的
* 這是因為PackageInfo代表的是整個系統安裝的程式(包)
* ResolveInfo代表的是整個系統中含有桌面快捷圖示的程式
* 顯然前者包含後者,且多于後者
*/
}
}
代碼位址
http://download.csdn.net/detail/u010739551/7893685
補充
RunningTaskInfo
ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
//目前運作的任務棧資訊集合
List<RunningTaskInfo> rti = mActivityManager.getRunningTasks(1);
RunningTaskInfo runningTaskInfo=rti.get(0);
//元件名
ComponentName componentName=runningTaskInfo.topActivity;
//包名
String packageNameStr=componentName.getPackageName();