您的位置:首页 > 移动开发

获取android已安装的应用PackageInfo启动第三方APP应用

2015-06-30 19:34 537 查看

获取android已安装的应用PackageInfo

获取已安装的应用

public static ArrayList<AppInfo> getInstalledApps(Context context) {

ArrayList<AppInfo> res = new ArrayList<AppInfo>();
// 获取手机应用的集合
List<PackageInfo> packs = context.getPackageManager()
.getInstalledPackages(0);
for (int i = 0; i < packs.size(); i++) {
PackageInfo p = packs.get(i);
// 定义应用bean对象
AppInfo newInfo = new AppInfo();
// 应用名
newInfo.setAppname(p.applicationInfo.loadLabel(
context.getPackageManager()).toString());
// 包名
newInfo.setPname(p.packageName);
// 获取清单文件的versionName版本名
newInfo.setVersionName(p.versionName);
// 获取清单文件的versionCode版本号
newInfo.setVersionCode(p.versionCode);
res.add(newInfo);
}
return res;
}


启动第三方应用

appBgName:应用包名

已经包名启动
Intent minIntent = this.getPackageManager()
.getLaunchIntentForPackage(packageName);
startActivity(minIntent);


已知包名和类名启动应用程序
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);

ComponentName cn = new ComponentName(packageName, className);

intent.setComponent(cn);
context.startActivity(intent);


已知第
4000
三方应用的包名和指定类的action启动,可以启动第三方应用的指定Activity,并且传递参数,指定Activity必须设置Action;

Intent mIntent = new Intent();
mIntent.setPackage("com.test..");//包名
mIntent.setAction("android.intent.action.ABC");//action

mIntent.putExtra("a", "a");
mIntent.putExtra("b", "b");
mIntent.putExtra("c", 1);

startActivity(mIntent);


<activity
android:name="com.test.XXXActivity"
android:screenOrientation="landscape" >
<intent-filter>
<action android:name="android.intent.action.ABC" />

<category android:name="android.intent.category.DEFAULT" >
</category>

</intent-filter>
</activity>


根据包名关闭应用

ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
am.killBackgroundProcesses(appBgName);//包名
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: