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

时间:2015-02-13 06:45:25

标签: android android-intent android-activity android-package-managers

我对android很新,目前我正在研究一个复杂的项目,我需要完成一项要求。我有点被困在这里。

这是试用期结束后访客用户的游戏活动。

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?
    }
};
}

对应布局: enter image description here

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

2 个答案:

答案 0 :(得分:1)

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);

我希望这会帮助你。

答案 1 :(得分:0)

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

    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