1. 程式人生 > >[安卓開發基礎] 通過包名啟動一個APP 的 某一個Activity 或者另外一個app

[安卓開發基礎] 通過包名啟動一個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);
}