在网上查了一天试了各种方法,均不适合我的状况包括

包括以下这种

Android7.0 自动更新适配,包解析异常 – CSDN博客

http://blog.csdn.net/hexiuming12/article/details/77839435

最后发现

只加上

install.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);//添加这一句表示对目标应用临时授权该Uri所代表的文件

可以正常安装

部分代码

//安装apk
protected void installApkNew(Uri uri) {
        Intent install = new Intent(Intent.ACTION_VIEW);
        install.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        install.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);//添加这一句表示对目标应用临时授权该Uri所代表的文件
        install.setDataAndType(uri, "application/vnd.android.package-archive");
        startActivity(install);

    //intent.setDataAndType(uri, "application/vnd.android.package-archive");
    //不加下面这句话是可以的,查考的里面说如果不加上这句的话在apk安装完成之后点击单开会崩溃
    // android.os.Process.killProcess(android.os.Process.myPid());
    //startActivity(intent);
}

删除注册的provider依旧正常,在此记录

版权声明:本文为tsvico原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/tsvico/p/11877938.html