美文网首页
Android 下载apk后跳转安装(7.0之后)

Android 下载apk后跳转安装(7.0之后)

作者: GiottoYLY | 来源:发表于2020-03-23 17:49 被阅读0次

    更新完成后跳转到已下载的apk本地路径

    1. installApkNew方法跳转

    installApkNew跳转方法
    /**
    
    * @Title: installApk
    
    * @Description: 安装APK
    
    * @return: void 适配7.0(AndroidManifest加provider)
    
    */
    
    public static void installApkNew(Context mContext, String path) {
        File file =new File(path);
        Intent intent =new Intent(Intent.ACTION_VIEW);
        // 由于没有在Activity环境下启动Activity,设置下面的标签
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        if (Build.VERSION.SDK_INT >=24) {//判读版本是否在7.0以上
            //参数1 上下文, 参数2 Provider主机地址 和配置文件中保持一致  参数3  共享的文件
            Uri apkUri = FileProvider.getUriForFile(mContext,"com.XXX.XXX", file);//包名
            //添加这一句表示对目标应用临时授权该Uri所代表的文件
            intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
            intent.setDataAndType(apkUri,"application/vnd.android.package-archive");
        } else {
            intent.setDataAndType(Uri.fromFile(file),
            "application/vnd.android.package-archive");
        }
        mContext.startActivity(intent);
    }
    

    2. AndroidManifest 加 provider

    AndroidManifest
    <application ...>
            <!--解决7.0安装apk失败-->
            android:name="android.support.v4.content.FileProvider"
            android:authorities="com.XXX.XXX" 包名
            android:exported="false"
            android:grantUriPermissions="true">
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/provider_paths" />
    </application>
    

    3. res 下 增加 xml 文件夹 , 新增 provider_paths.xml 文件

    xml文件夹
    <?xml version="1.0" encoding="utf-8"?>
    <paths>
        <external-path
                name="files_root"
                path="Android/data/com.dealeronline.rmcompany/" />
        <external-path
                name="external_storage_root"
                path="." />
    </paths>
    
    provider_paths.xml

    注: compileSdkVersion 28 还需增加权限,不然跳转失败

    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
    

    相关文章

      网友评论

          本文标题:Android 下载apk后跳转安装(7.0之后)

          本文链接:https://www.haomeiwen.com/subject/blzwyhtx.html