调用另一个应用程序的特定 activity。 Android

Call a specific activity of another application. Android

我对 android 比较陌生,目前我正在从事一个复杂的项目,我需要完成一项要求。我有点卡在这里。

这是游戏内 activity 试用结束后供访客用户使用的内容。

public class GuestUserActivity extends Activity {
public Button mMenuButton;
public Button mRegisterButton;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.guest_user_screen);

    mMenuButton = ( Button ) findViewById( R.id.Menu);
    mRegisterButton = ( Button ) findViewById( R.id.Register);

    mMenuButton.setOnClickListener(m_MenuClicked);
    mRegisterButton.setOnClickListener(m_RegisterClicked);
}

public View.OnClickListener m_MenuClicked = new View.OnClickListener() {

    public void onClick(View v) {

        Intent intent = new Intent ( getBaseContext(), MainMenuActivity.class);
        startActivity(intent);

    }
};


public View.OnClickListener m_RegisterClicked = new View.OnClickListener() {

    public void onClick(View v) {
      //What to write here?
    }
};
}

对应布局:

所以当用户点击注册按钮时。我想启动另一个应用程序的特定 activity。

所以如果我理解正确的话,你想启动一个与你的应用程序不同的应用程序?如果是这样,请尝试:

    Intent i;
    PackageManager manager = getPackageManager();
    try {
        i = manager.getLaunchIntentForPackage("app package name");
        if (i == null)
            throw new PackageManager.NameNotFoundException();
        i.addCategory(Intent.CATEGORY_LAUNCHER);
        startActivity(i);
    } catch (PackageManager.NameNotFoundException e) {

    }

您可以找到更多详细信息here

Intent launchIntent = new Intent(Intent.ACTION_MAIN);
                launchIntent.addCategory(Intent.CATEGORY_LAUNCHER);
                ComponentName cp = new ComponentName("Your App Packge Name that Contains Register Activity", "Register Activity Name");
                launchIntent.setComponent(cp);

                startActivity(launchIntent);

希望对您有所帮助。