如何从Android中的其他应用调用或调用一个应用?

我想从另一个应用程序调用一个应用程序。

我的Java文件代码:

Intent intent = new Intent(Intent.ACTION_RUN); intent.setComponent(new ComponentName("Package name", "class name")); startActivity(intent); 

但是我在指定确切的包路径方面遇到了问题,而且我不知道Manifest中该代码的权限。 拜托,帮帮我。

我将假设你真的想要启动另一个应用程序,而不是你的应用程序中的另一个活动。

然后有两种方法可以做到这一点。 您可以尝试使用隐式意图,根据文档,(隐式)意图是“要执行的操作的抽象描述”,“提供在不同应用程序中的代码之间执行后期运行时绑定”。 有点像尝试使用接口在线路上启动方法。 您无法确切地确定仅启动的对象类是什么,它可以处理您声明的操作和类别。

第二种方法是明确的意图,更像是通过网络进行具体的调用。 如果你知道包和类名这应该有用。

  Intent intent = new Intent(Intent.ACTION_MAIN); //intent.putExtra("plain_text", "Testing"); intent.setClassName("packagename", "packagename.ClassName"); // Explicit Intent try { startActivity(intent); } catch (Exception e) { Log.d(TAG","onCreate",e); } } 

您可以根据需要和尝试启动的位置使用标记添加额外信息。

JAL

从您的应用程序启动外部活动是使用与您使用的方法略有不同的方法完成的。 您需要使用给定的操作创建一个intent 。 例如,启动从库中获取图像的意图如下所示:

 Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); startActivityForResult(intent, IMAGE_PICK); 

请注意,您没有显式定义要加载的活动,而是要执行的操作类型。 然后,Android将选择(或让用户选择)已注册处理此类意图的活动。

您可能需要更具体地了解您正在做的事情。 如果您想要做的就是从主Activity中启动另一个Activity,那么这样的事情就可以了:

 Intent intent = new Intent(this, OtherActivity.class); intent.putExtra("key", "data"); //put any data you want to pass into the new activity startActivity(intent); 

然后确保将新活动放在清单中,如下所示:

  

如果您的目标是其他目标,那么您应该根据自己的想法做出具体的决定。