如何从另一个android应用程序调用一个android应用程序

如何从另一个android应用程序调用一个android应用程序,android,Android,我想从另一个应用程序调用一个android应用程序 我尝试了一些,但它们对我不起作用,我得到了一个包解析错误 假设有两个应用程序:Application1和Application2 我想从Application1调用Application2 下面是执行此操作的一些示例代码: Intent i = new Intent(); i.setAction(android.content.Intent.ACTION_VIEW); i.setDataAndType(Uri.fromFile(fileName

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

我尝试了一些,但它们对我不起作用,我得到了一个包解析错误

假设有两个应用程序:Application1和Application2

我想从Application1调用Application2

下面是执行此操作的一些示例代码:

Intent i = new Intent();
i.setAction(android.content.Intent.ACTION_VIEW);
i.setDataAndType(Uri.fromFile(fileName),"application/vnd.android.package-archive"); 
startActivity(i);

这里
fileName=”file://data/data/package_name/files/Application1.apk";

是否尝试启动未安装的应用程序?看起来您正试图通过向app1传递sd卡上app2的.apk文件的位置来执行应用程序-这不起作用。只有在用户安装了app2之后,Android操作系统才知道如何通过
Intent
s调用app2(如果您可以调用sd卡上的任意代码,请考虑安全风险)

假设安装了app1和app2,请查看app2的AndroidManifest.xml文件。此文件将指示它将响应哪种类型的
Intent
s

请参阅以获取一个好的示例


如果您需要更多帮助,请向我们展示app2的AndroidManifest.xml文件。

我认为这段代码会有所帮助:

Intent intent = new Intent(Intent.ACTION_RUN);
intent.setComponent(new ComponentName("<packet name>", "<class name>"));
List list = packageManager.queryIntentActivities(intent, packageManager.COMPONENT_ENABLED_STATE_DEFAULT);

if(list.size() > 0)
{
 Log.i("Log", "Have application" + list.size());
 startActivity(intent);
}
else
{
    Log.i("Log", "None application");
}
Intent Intent=新的Intent(Intent.ACTION\u RUN);
setComponent(新组件名(“,”);
列表=packageManager.QueryInputActivities(意图、packageManager.COMPONENT\u ENABLED\u STATE\u默认值);
如果(list.size()>0)
{
Log.i(“Log”,“Have application”+list.size());
星触觉(意向);
}
其他的
{
Log.i(“日志”、“无申请”);
}

Android中有许多类似于“从一个Android应用程序调用另一个Android应用程序”的概念。请考虑在你的问题中加上100个左右的单词,解释你想要完成的内容,这样我们就能更好地帮助你。你可以添加更多的描述性文字并修改格式吗?我使用它使我的在线支付应用程序…它使用链接打开应用程序在我的手机上可用
Intent i4=new Intent(Intent.ACTION_MAIN);

PackageManager manager = getPackageManager();

i4 = manager.getLaunchIntentForPackage("com.apk");//apk name

i4.addCategory(Intent.CATEGORY_LAUNCHER);

startActivity(i4);
private void handleCallGooglePlay(Activity mActivity, String packageClass) {
        try {
            mActivity.startActivity(new Intent("android.intent.action.VIEW", Uri.parse("market://details?id=" + packageClass)));
        } catch (Exception var4) {
            mActivity.startActivity(new Intent("android.intent.action.VIEW", Uri.parse(package_name)));  //package name
        }
    }