【问题标题】:How do I Install external APKs necessary for my application in Android Studio?如何在 Android Studio 中安装我的应用程序所需的外部 APK?
【发布时间】:2016-02-23 18:42:39
【问题描述】:

我已经下载了 CSipSimple 。现在对于这个视频通话,我需要安装 CSipSimple-Codec-Pack 和 CSipSimple-Video-plugin apks。我需要使用我的 Android 应用程序安装这两个外部 apk。这些 apk 是安装我的应用程序所必需的。

如何通过编程将这些 apk 安装到我的 Android 应用程序中?

【问题讨论】:

  • 您需要将这些应用程序与您的应用程序一起打包,如果它们是开源的那么简单,或者您可以做的是在启动您的应用程序时检查这些应用程序是否已安装,如果它们不只是显示一个弹出窗口,要求用户安装这些应用程序
  • 如何查看是否安装了这两个应用程序?
  • 如何显示弹出窗口来安装这些应用程序?
  • 带有按钮的警报对话框,当单击启动 Play 商店并显示您所需的应用程序时?

标签: android installation apk external-application


【解决方案1】:

有两种方法可以尝试

  • 由于您依赖的应用程序的代码是开源的,因此获取 apk 将它们放在应用程序的资产目录中,然后在您的应用运行时将其他应用程序的 apk 复制到外部存储并开始安装

  • 如果这两个应用程序都使用 gradle build 然后您可以 git clone 应用程序的源代码,构建它们,然后将它们作为模块导入到您的应用程序中,这样当您的应用程序安装时,这些其他应用程序也会与您的应用程序一起安装

第一个仅在手机有 SD 卡时才有效,第二个更简单,更直接 没有代码 我假设您知道如何获取您需要的应​​用程序的源代码,对吧? 只需将它们复制粘贴到您的应用程序的根文件夹中,然后在 android studio 中右键单击您的项目鼠标到 new-> 单击模块-> 导入 gradle 项目-> 然后选择所需的应用程序。

第一种方法请看this thread

代码片段:

AssetManager assetManager = getAssets();

InputStream in = null;
OutputStream out = null;

try {
    in = assetManager.open("myapk.apk");
    out = new FileOutputStream(Environment.getExternalStorageDirectory()+"/myapk.apk");

    byte[] buffer = new byte[1024];

    int read;
    while((read = in.read(buffer)) != -1) {

        out.write(buffer, 0, read);

    }

    in.close();
    in = null;

    out.flush();
    out.close();
    out = null;

    Intent intent = new Intent(Intent.ACTION_VIEW);

    intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory()+"/myapk.apk")),
        "application/vnd.android.package-archive");

    startActivity(intent);

} catch(Exception e) { }

上面的代码将apk从你的assests文件夹复制到sdcard,然后安装到手机上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-13
    • 2017-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多