- 通过包名称启动同一个应用不同包名称下的 Activity
//第一个参数为工程包名 可以直接使用 this,第二个为启动的Actvity 完整路径。填写错误会提示 Activity 找不到。
Intent intent =new Intent(MainActivity.this,com.zengjx.permisssionB.AActivity.class);
// intent.setClassName("com.zengjx.androidbaseproject","com.zengjx.androidbaseproject.NotificationDetailActivity");
// intent.setClassName("com.zengjx.permisssionB","com.zengjx.permisssionB.BActivity");
startActivity(intent);
- 通过包名启动一个APP 的 某一个Activity
1. PermissionA 启动 Perminsion B 的 BActivity:
PermissionA:
public void start1(){
Intent intent =new Intent();
intent.setClassName("com.zengjx.androidbaseproject","com.zengjx.androidbaseproject.BActivity");
startActivity(intent);
}
2. Perminsion B 的AndroidMenifest.xml 添加 BActivity: android:exported="true"
<activity android:name="com.zengjx.permisssionB.BActivity"
android:exported="true"
>
</activity>
- 通过 包名启动另外一个app:
PackageManager packageManager = getPackageManager();
Intent intent=new Intent();
intent =packageManager.getLaunchIntentForPackage("com.zengjx.androidbaseproject");//需要启动的应用包名
if(intent==null){
Toast.makeText(MainActivity.this, "未安装", Toast.LENGTH_LONG).show();
}else{
startActivity(intent);
}