Calling an app from another app

gosr picture gosr · Jan 12, 2011 · Viewed 27.8k times · Source

In this app I'm developing I need to load/call another app that is already installed on the phone. It's an application for my own personal use only, so no need to check if the other app is installed - I know it is.

I've googled this problem for hours, but I can't find anything that works. Mostly because the guidelines for finding package name and class name are really bad.

Via cmd and adb I was able to find that the info regarding the application I'd like to call is: package:/data/app/com.soundcloud.android-1.apk=com.soundcloud.android (that's exactly what it said in the cmd window.)

I tried something like this:

Intent i = new Intent();
i.setClassName("/data/app/com.soundcloud.android-1.apk", "com.soundcloud.android");
startActivity(i);

But my app just crashes instead. I used the above code because someone said that this could call an app:

Intent i = new Intent();
i.setClassName("<package_name>","<Class Name(with package name)>");
startActivity(i);

Does anyone know what to really write?

P.S.: my own app does not need any information about what's happening in the called app.

Answer

Ian G. Clifton picture Ian G. Clifton · Jan 13, 2011

Use the PackageManager to get an Intent for the package:

PackageManager pm = getPackageManager();
Intent intent = pm.getLaunchIntentForPackage("com.example.package");
startActivity(intent);