android系统中,有很多管理服务相关的类:TelephoneManager,WindowManager,SmsManager,ActivityManager等。
本文主要介绍下packageManager。这个服务主要用户获取应用程序中的packageName,icon,label等,初次之外,他也可以获取应用程序的占用内存大小以及缓存大小等信息。
•安装,卸载应用
•查询permission相关信息
•查询Application相关信息(application,activity,receiver,service,provider及相应属性等)
•查询已安装应用
•增加,删除permission
•清除用户数据、缓存,代码段等
我们可以用PackageManager来显示系统安装的应用程序列表或者系统程序列表
//===========================================================
/**
* 开启应用
*/
private void startApplication() {
Intent intent = new Intent();
String packname = appInfo.getPackname();
PackageManager pm = getPackageManager();
// intent.setAction("android.intent.action.MAIN");
// intent.addCategory("android.intent.category.LAUNCHER");
// //查询出来了手机上所有具有启动能力的Activity
// List<ResolveInfo> queryIntentActivities = pm.queryIntentActivities(intent, 0);
try {
PackageInfo packinfo = pm.getPackageInfo(packname,
PackageManager.GET_ACTIVITIES);
ActivityInfo[] activityInfos = packinfo.activities;
if (activityInfos != null && activityInfos.length > 0) {
ActivityInfo activityinfo = activityInfos[0];
intent.setClassName(packname, activityinfo.name);
startActivity(intent);
} else {
Toast.makeText(this, "哎呀,这个应用程序没界面", 0).show();
}
} catch (NameNotFoundException e) {
e.printStackTrace();
Toast.makeText(this, "没法开这个应用。", 0).show();
}
}