通过PackageManager开启任意应用
已知包名、启动Activity名:
Intent intent = new Intent();
String packageName = "org.zjphis.wsjd";
String clsName = packageName + ".LoginActivity";
ComponentName component = new ComponentName(packageName, clsName);
intent.setComponent(component);
startActivity(intent);
未知包名、启动Activity名,但知道应用名:
Intent mainIntent // 获取所有启动Activity的Intent
= new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> apps // 获取所有app信息
= getPackageManager().queryIntentActivities(mainIntent, 0);
if (apps != null) {
// 遍历信息列表
for (ResolveInfo resolveInfo : apps) {
Log.v(TAG, resolveInfo.toString());
String appName // 该应用名
= (String) resolveInfo.loadLabel(getPackageManager());
if ("浙江卫监".equals(appName)){
//该应用的包名
String pkg = resolveInfo.activityInfo.packageName;
//应用的主activity类
String cls = resolveInfo.activityInfo.name;
//打包应用信息
ComponentName componet = new ComponentName(pkg, cls);
Intent intent = new Intent();
intent.setComponent(componet);
s

本文介绍了如何通过Android的PackageManager服务启动已知或未知包名的应用。内容包括使用RecyclerView展示应用列表,点击事件触发应用跳转,重点强调了在主桌面开发中优化应用启动的方法,如通过已知包名和Activity提高性能。
最低0.47元/天 解锁文章
2255

被折叠的 条评论
为什么被折叠?



