开发者

Calling an app from another app

开发者 https://www.devze.com 2023-02-03 18:04 出处:网络
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

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 wa开发者_开发问答s 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.


Use the PackageManager to get an Intent for the package:

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


The documentation is here.

I think in your example, com.soundcloud.android is in fact the package name, so that should be the first argument. For the second one, you still need to figure out the class to use.

If you don't have the code, you can check how to find out the class from the apk with this.

0

精彩评论

暂无评论...
验证码 换一张
取 消