gpt4 book ai didi

java - 如何使用 skyepub 阅读 epub 文件?

转载 作者:行者123 更新时间:2023-11-30 09:10:10 24 4
gpt4 key购买 nike

我想使用 skyepub SDK 来阅读我的 epub 书籍。但是当我想阅读 epub 时,我总是出现空白屏幕:

03-26 10:46:11.458: I/System.out(1848): GET '/Alexandre Dumas - Les Trois Mousquetaires/META-INF/container.xml' 
03-26 10:46:11.458: I/System.out(1848): HDR: 'user-agent' = 'Dalvik/1.6.0 (Linux; U; Android 4.4.2; Nexus 7 - 4.4.2 - API 19 - 800x1280 Build/KOT49H)'
03-26 10:46:11.458: I/System.out(1848): HDR: 'host' = 'localhost:51005'
03-26 10:46:11.458: I/System.out(1848): HDR: 'accept-encoding' = 'gzip'
03-26 10:46:11.458: I/System.out(1848): HDR: 'connection' = 'Keep-Alive'
03-26 10:46:12.238: W/AwContents(1848): nativeOnDraw failed; clearing to background color.
03-26 10:46:12.242: W/AwContents(1848): nativeOnDraw failed; clearing to background color.
03-26 10:46:12.258: W/AwContents(1848): nativeOnDraw failed; clearing to background color.

我在 Application Android 目录中解压了我想阅读的每一本书,所以我猜它与解压无关。

这是代码:http://pastebin.com/BuC9DJsf

解压类:http://pastebin.com/0ervqUy6

这与互联网权限无关,因为我在我的应用程序 list 中放置了必要的权限(包括互联网权限)。

最佳答案

我遇到了同样的问题。但是我解决了!

很简单,你必须解压epub文件。

解压不需要使用AsyncTask。这是我的解压缩代码:

public static String unzip(String path, String zipname) {
InputStream is;
ZipInputStream zis;
String folderName = null;
try {
String filename;
is = new FileInputStream(path + zipname);
zis = new ZipInputStream(new BufferedInputStream(is));
ZipEntry ze;
byte[] buffer = new byte[1024];
int count;
boolean firstLoop = true;
while ((ze = zis.getNextEntry()) != null) {
// zapis do souboru
filename = ze.getName();
if (firstLoop) {
folderName = filename;
firstLoop = false;
}
// Need to create directories if not exists, or
// it will generate an Exception...
if (ze.isDirectory()) {
File fmd = new File(path + filename);
fmd.mkdirs();
continue;
}

FileOutputStream fout = new FileOutputStream(path + filename);

// cteni zipu a zapis
while ((count = zis.read(buffer)) != -1) {
fout.write(buffer, 0, count);
}

fout.close();
zis.closeEntry();
}

zis.close();
} catch (IOException e) {
e.printStackTrace();
}

return folderName;
}

不要忘记在 BookInformation 上设置 SkyProvider。

            SkyProvider skyProvider = new SkyProvider();
book.isDownloaded = true;
book.setFileName(fileName);
book.setBaseDirectory(baseDirectory);
book.setContentProvider(skyProvider);
skyProvider.setBook(book.getBook());
skyProvider.setKeyListener(new KeyDelegate());
book.makeInformation();

关于java - 如何使用 skyepub 阅读 epub 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22658732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com