java - 如何启动另一个应用程序的特定(显式) Activity

标签 java android-intent android-activity launch

我想从我的应用程序启动另一个应用程序的特定 Activity 。例如,在onCreate上在我的应用程序中,我想启动名为 Rolling 的 Activity (非主要)com.pas.webcam.pro的 Activity 。我听说您必须控制两个应用程序才能执行此操作,因为您必须将意图过滤器添加到第二个应用程序的 list 中。但事实并非如此,因为 Google Play 商店中的 Activity 启动器应用可以启动 IP Webcam Pro 的滚动 Activity 。

Activity Launcher app是开源的,所以我尝试查看 source code here 。但它太复杂了,所以我无法弄清楚这个应用程序如何神奇地启动这个 Activity 。 Stack Overflow 上还有很多类似的问题,我已经阅读了每一个问题。我也尝试了答案中的很多代码,如下所示:

Intent intent = new Intent(); intent.setComponent(new ComponentName("com.pas.webcam", "com.pas.webcam.RollingActivity")); startActivity(intent);

我还尝试了其他帖子中此代码的变体。我的应用程序总是崩溃,并且我得到 the following error 的变体(取决于我使用的代码) :

An error occurred

Invalid intent operation. Unable to find explicit activity class {com.pas.webcam.pro/com.pas.webcam.pro.Rolling}; have you declared this activity in your AndroidManifest.xml?

我已将以下两项放入我的 Android list 中,并且发生了同样的事情:

<uses-permission android:name="android.permission.GET_INSTALLED_PACKAGES" />

<activity android:name="com.pas.webcam.pro.RollingActivity"

提前感谢您的任何答复,我真的很感激,因为我已经研究这个问题一段时间了。

编辑:这是我要启动的应用程序的 Activity :/image/Fa7Xq.jpg

编辑:David Wasser 为我提供了解决问题所需的代码,帮助我解决了问题。它确实有效!对于想要使用代码启动另一个应用程序的特定 Activity 的任何人,请使用以下代码:

Intent intent = new Intent(); intent.setClassName("com.pas.webcam.pro", "com.pas.webcam.Rolling"); startActivity(intent);

您可以用您选择的应用程序和 Activity 替换 com.pas.webcam.pro 和 Rolling,但这种方法确实有效。问题解决了!😀

最佳答案

试试这个:

Intent intent = new Intent();
intent.setClassName("com.pas.webcam.pro", "com.pas.webcam.Rolling");
startActivity(intent);

由于您将该应用程序称为“IP webcam pro”,因此我假设软件包名称为“com.pas.webcam.pro”(通过互联网研究找到)。

关于java - 如何启动另一个应用程序的特定(显式) Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62862586/

相关文章:

java - 让 Hibernate 忽略未映射的实例变量

java - 我们可以使用junit编写功能测试吗?

java - 带有 ResponseBody : set ResponseStatus in method body 的异常处理程序

android - 使 "up"按钮的行为类似于 Android 上的 "back"按钮

android - 在类中使用 getString()

java - 如何在BeanIO中设置字符编码?

android - 快速连续多次启动 Intent 服务会导致额外的空值吗?

android - 如何在android中动态高效地切换activity?

android - 从两个不同的包启动 Activity

android - 如何在 onCreate 中使用 findViewById() 而不返回 null?