离线安装腾讯x5内核(附安装包下载地址)

背景:由于项目需要在一个定制android设备上播放RTSP流视频,设备自带的浏览器内核不支持RTSP流播放,这就导致我使用webview播放h5网址上的视频的时候,无法正常播放视频。在android手机上都是可以播放的,所以猜测是定制android设备自带的浏览器内核兼容性比较差。通过对比,选择使用腾讯x5内核。

由于设备没有联外网的,所以只能通过离线安装的方式。查看了腾讯浏览服务-SDK下载

官网文档,发现流程写的并不清晰,而且没有提供离线安装包,所以这里做个整理。

1.首先需要项目依赖x5 sdk库,通过sdk提供的api安装

 api 'com.tencent.tbs:tbssdk:44286'

2.下载x5安装包,链接如下

https://download.csdn.net/download/wangwenbo1019/88850590

3.将下载好的安装包放到项目的assets目录下

3.将项目目录下的安装包拷贝到sd卡,代码如下:(这里逻辑可以放在启动页或者首页去做)

  File internalStorage = this.getFilesDir();
        String path = internalStorage.getAbsolutePath();
        copyAssetsToSDCard(this, "tbs", path + "/tbs");
public static void copyAssetsToSDCard(Context context, String sourceFolder, String destinationFolder) {
        AssetManager assetManager = context.getAssets();
        String[] files;
        try {
            // 获取assets文件夹下的所有文件和子文件夹
            files = assetManager.list(sourceFolder);
        } catch (IOException e) {
            e.printStackTrace();
            return;
        }

        // 创建目标文件夹
        File destFolder = new File(destinationFolder);
        if (!destFolder.exists()) {
            destFolder.mkdirs();
        }

        for (String filename : files) {
            InputStream in = null;
            OutputStream out = null;
            try {
                // 从assets中打开文件
                in = assetManager.open(sourceFolder + "/" + filename);
                // 指定输出目标文件
                File outFile = new File(destinationFolder, filename);
                out = new FileOutputStream(outFile);
                // 将文件内容复制到目标文件
                Log.i("Qbsdk","copy 开始");
                copyFile(in, out);
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (in != null) {
                        in.close();
                    }
                    if (out != null) {
                        out.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
 private static void copyFile(InputStream in, OutputStream out) throws IOException {
        try {
            byte[] buffer = new byte[1024];
            int read;
            LogUtil.Companion.i("Qbsdk","copy 进行中...");
            while ((read = in.read(buffer)) != -1) {
                out.write(buffer, 0, read);
            }
            LogUtil.Companion.i("Qbsdk","copy 文件成功");
        } catch (Exception e) {
            e.printStackTrace();
            LogUtil.Companion.i("Qbsdk","copy 文件失败"+e.getMessage());
        }

    }

4.通过调用腾讯sdk api执行安装任务

    QbSdk.installLocalTbsCore(this, 46514, path + "/tbs" + "/tbs_core_046514_20230612114949_nolog_fs_obfs_armeabi_release.tbs");

其中46514表示安装包的版本号。

5.添加监听

 QbSdk.setTbsListener(new TbsListener() {

            /**
             * @param stateCode 用户可处理错误码请参考{@link com.tencent.smtt.sdk.TbsCommonCode}
             */
            @Override
            public void onDownloadFinish(int stateCode) {
                LogUtil.Companion.i(TAG, "onDownloadFinished: " + stateCode);
            }

            /**
             * @param stateCode 用户可处理错误码请参考{@link com.tencent.smtt.sdk.TbsCommonCode}
             */
            @Override
            public void onInstallFinish(int stateCode) {
                
                LogUtil.Companion.i(TAG, "安装x5内核完成 重启app: ");

               
            }

            /**
             * 首次安装应用,会触发内核下载,此时会有内核下载的进度回调。
             * @param progress 0 - 100
             */
            @Override
            public void onDownloadProgress(int progress) {
                LogUtil.Companion.i(TAG, "Core Downloading: " + progress);
            }
        });

6.安装成功之后重启app,查看是否可以加载x5内核

 Boolean canLoadX5 = QbSdk.canLoadX5(this);
        LogUtil.Companion.i("QbSdk", "是否可以加载X5内核: " + canLoadX5);

7.加载成功之后在页面直接使用sdk提供的webview就可以使用x5内核加载h5网页了

 <com.tencent.smtt.sdk.WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值