如何在 Android Studio 中安装我的应用程序所需的外部 APK?

How do I Install external APKs necessary for my application in Android Studio?

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

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

有 2 种方法可供您尝试

  • 由于你的依赖app的代码是开源的,所以获取apks后将它们放在你应用的assets目录下,然后当你的app 运行复制其他app的apk到外部存储并启动安装

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

第一个只有当 phone 有 SD 卡时才有效,第二个更简单,更直接 没有代码 我假设您知道如何获取所需应用程序的源代码,对吗? 只需将它们复制粘贴到您的应用程序的根文件夹中,然后在 android studio 中右键单击您的项目,将鼠标悬停在新建上 -> 单击模块 -> 导入 gradle 项目 -> 然后 select 所需的应用程序.

第一种方法请看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,然后将其安装到 phone。