主应用下载另一个应用程序然后使用它

时间:2015-06-17 08:18:18

标签: java android download apk

我想做的事情可能很难解释或理解,所以我做了一个快速绘图。enter image description here

首先,我们有2个Android应用。显示“Hello World”和B有一个按钮,可以(可能)下载应用程序(在网络上或本地)。

当我们点击B按钮,下载A应用程序并安装它(如果您在任何市场下载它)然后,使用A app修改B app。

我不知道是否可能:

  1. 下载应用并以编程方式安装
  2. 创建一个像这样的“polymorph”Android应用。
  3. 如果我用一句话总结我想要的东西,那就是:
    使用刚下载并安装了B的应用修改B应用。

2 个答案:

答案 0 :(得分:1)

我确定你可以下载这些SDK(显然是这里的APK)并使用Fragment或任何代码注入或者其他东西。

可能需要使用反射,因为您的主要应用程序" B"不会解决" A"。

中的课程

也许你的" A" 模块应该公开它所拥有的方法/变量/片段,就像在嵌入式JSON描述性资产中那样," B"可以解析并知道该怎么做。

这里的要点显然是要移动所有的" A"代码远离" B",意味着" B"的灵活性。

答案 1 :(得分:0)

下载应用并以编程方式安装:

是的,您可以通过编程方式执行此操作,但系统会提示用户安装应用程序(例如接受新应用程序将使用的权限)。

    String filename = "yourAppName.apk";
    //trivial downloading asynctask
    DownloadApp appd = new DownloadApp(context, val, filename);
    if (appd.downnAndsave()) {
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.setDataAndType(Uri.fromFile(new File(Environment
                        .getExternalStorageDirectory()
                        + "/download/"
                        + filename)),
                "application/vnd.android.package-archive");
        context.startActivity(intent);
    }

创建一个像这样的“polymorph”Android应用程序:

//if the download is complete then have a flag
//use this to run another application from your application B
    Intent intent = getPackageManager().getLaunchIntentForPackage("com.package.A");
    startActivity(intent);