[安卓开发基础] 通过包名启动一个APP 的 某一个Activity 或者另外一个app

  •  通过包名称启动同一个应用不同包名称下的 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);
}

猜你喜欢

转载自blog.csdn.net/oDianZi1234567/article/details/86080826