Magakahn
Magakahn

Reputation: 508

Open third party app

I am developing an app that uses packagenames to start a Third Party App. I have done some research and found out that all apps can be started from a launcher intent. Are there anyone that knows how to do this from a click of a Button.

Upvotes: 2

Views: 7058

Answers (3)

YuDroid
YuDroid

Reputation: 1639

For above accepted answer, if the third party app is not installed on your emulator, you should gracefully handle it also. Here is a complete code for the same:

public void openThirdPartyApp() {   

        Intent intent = new Intent("com.thirdparty.package");
            intent.setPackage("com.thirdparty.package");

            try {
                ((Activity) context).startActivityForResult(intent, REQUEST_CODE);
            } catch (ActivityNotFoundException e) {
                downloadIt();
            }
        }

    private void downloadIt() {

    Uri uri = Uri.parse("market://search?q=pname:" + "com.thirdparty.package");
    Intent intent = new Intent(Intent.ACTION_VIEW, uri);

                try {
                    context.startActivity(intent);
                } catch (ActivityNotFoundException e) {
    //creates a small window to notify there is no app available 
                }   

            }
        }

    }

Upvotes: 5

Johannes Staehlin
Johannes Staehlin

Reputation: 3720

You can't really 'start applications'. You can try to get the Launch Intent from the 3rd party application if you know the packagename:

Intent intent = getPackageManager().getLaunchIntentForPackage("com.thirdparty.package");
startActivity( intent );

Upvotes: 8

MByD
MByD

Reputation: 137362

Just put it in an View.OnClickListener:

myButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = getPackageManager().getLaunchIntentForPackage(theOtherActivityPackage);
        startActivity( intent );
    }
});

Upvotes: 2

Related Questions