使用TBS来实现打开office文档的功能。
下载腾讯浏览服务 SDK。
网址:https://x5.tencent.com/tbs/sdk.html
将tbs_sdk_thirdapp_v4.3.0.1072_43646_sharewithdownloadwithfile_withoutGame_obfs_20190429_175122.jar放入libs文件中,加载。
dependencies {
.........
implementation files('libs/tbs_sdk_thirdapp_v4.3.0.1072_43646_sharewithdownloadwithfile_withoutGame_obfs_20190429_175122.jar')
}
导入so库
defaultConfig {
.........
ndk {
abiFilters "armeabi"
}
}
代码
初始化
QbSdk.initX5Environment(getApplicationContext(), null);
将TbsReaderView加入到布局中。
ll = findViewById(R.id.ll);
trv = new TbsReaderView(this, this);
ll.addView(trv, new LinearLayout.LayoutParams(-1, -1));
创建文件夹,设置bundle,打开文件。
//创建TbsReaderView需要的文件夹
String bsReaderTemp = Environment.getExternalStorageDirectory().toString() + "/TbsReaderTemp";
File bsReaderTempFile = new File(bsReaderTemp);
if (!bsReaderTempFile.exists()) {
bsReaderTempFile.mkdir();
}
//文件路径,设置你自己的文件路径
String filePath = Environment.getExternalStorageDirectory().toString() + "/tencent/MicroMsg/Download/学知帆问题.docx";
File file = new File(filePath);
Bundle bundle = new Bundle();
bundle.putString("filePath", file.toString());
bundle.putString("tempPath", Environment.getExternalStorageDirectory().toString() + "/" + "TbsReaderTemp");
查看文件格式是否支持
boolean isOpen = trv.preOpen(getFileType(file.toString()), false);
if (isOpen) {
//打开文件
trv.openFile(bundle);
}
权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
5.0以上要使用运行时权限
效果图如下: