Android 使用 Intent 打开第三方应用或调用制定 Activity
Intent intent = new Intent();
intent.setClassName("package name", "activity name");
// 内部调用 intent.setComponent(new ComponentName("package name", "activity name"));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // 可选
// 知道 App 的包名和 Activity 的全路径及其名称
// 启动的目标 Activity 在 AndroidManifest.xml 中的属性 Export="true"
// 也可以不判断
if (intent.resolveActivityInfo(getPackageManager(), PackageManager.MATCH_DEFAULT_ONLY) != null) {startActivity(intent);
}String packageName="package name";
PackageManager packageManager = context.getPackageManager();
Intent it = packageManager.getLaunchIntentForPackage(packageName);
if (it != null){startActivity(it);
}// 隐式调用
Uri uri = Uri.parse("http://www.abc.xyz");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
if (intent.resolveActivity(getPackageManager()) != null) {startActivity(intent);
}
Ps: activity <intent-filter>
android.intent.action.MAIN 决定应用程序最先启动的Activity
android.intent.category.LAUNCHER 决定应用程序是否显示在程序列表里