Java 如何在Android中从另一个应用调用或调用一个应用?

Java 如何在Android中从另一个应用调用或调用一个应用?,java,android-intent,android-manifest,package-name,Java,Android Intent,Android Manifest,Package Name,我想从另一个应用程序调用一个应用程序 我的Java文件代码: 但我在指定确切的包路径时遇到了问题,我不知道清单中该代码的权限。请帮帮我。你可能需要更具体地说明你在做什么。如果您只想从主活动中启动另一个活动,那么类似这样的操作就可以了: Intent intent = new Intent(this, OtherActivity.class); intent.putExtra("key", "data"); //put any data you want to pass into the new

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

我的Java文件代码:


但我在指定确切的包路径时遇到了问题,我不知道清单中该代码的权限。请帮帮我。

你可能需要更具体地说明你在做什么。如果您只想从主活动中启动另一个活动,那么类似这样的操作就可以了:

Intent intent = new Intent(this, OtherActivity.class);
intent.putExtra("key", "data"); //put any data you want to pass into the new activity
startActivity(intent);
然后确保将新活动放入清单中,如下所示:

<activity android:name=".OtherActivity"
      android:label="@string/other"/>
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, IMAGE_PICK);

如果你的目标是其他东西,那么你应该更具体地说明你想要做什么。

从你的应用程序启动外部活动时,使用的方法与你正在使用的方法略有不同。你需要这样做。例如,启动从库中获取图像的意图如下所示:

<activity android:name=".OtherActivity"
      android:label="@string/other"/>
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, IMAGE_PICK);

请注意,您没有明确定义要加载的活动,而是定义要执行的操作类型。然后Android会选择或让用户选择一个已注册的活动来处理这种运行意图。

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

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

第二种方法是明确的意图,更像是通过电线进行具体的调用。如果您知道包和类名,这应该可以工作

    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);
    }
}
您可以使用标志添加额外的信息,具体取决于您的需要以及您尝试从何处启动

日航