Android7.0以前的安装方式比较简单:
File apk = new File(...);
Uri uri = Uri.fromFile(apk);
Intent intent = new Intent();
intent.setClassName("com.android.packageinstaller", "com.android.packageinstaller.PackageInstallerActivity");
intent.setData(uri);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
在高版本中,Android7.0 及以上,开放(暴露)私有数据的唯一方式是通过 ContentProvider 来实现。
具体的步骤大致如下:
- 配置 AndroidManifest.xml 中的 ContentProvider 信息;
- 配置要开放的 paths 信息;
- 在 Java 代码中通过 FileProvider 封装文件信息。
安装apk时需要将apk数据暴露给系统的安装进程
参考: