在黑莓中阅读epub文件

时间:2011-12-25 18:39:40

标签: blackberry java-me epub

你能告诉我一个启动黑莓的Epub阅读器应用程序的提示吗?

我想要最简单的方法,是否可以阅读和阅读任何浏览器或UI组件。显示它?

我想从服务器下载它,然后查看它给用户阅读。

1 个答案:

答案 0 :(得分:2)

几天前,添加了一个Epub阅读器库here,我尝试使用它,但它有一些困难,它只能从资源打开Epubs,但不能从文件系统打开,所以我决定下载源代码并做一些改编。 首先,我编写了一个小函数,将Epub文件作为流打开:

public static InputStream GetFileAsStream(String fName) {
    FileConnection fconn = null;
    DataInputStream is = null;
    try {
        fconn = (FileConnection) Connector
                .open(fName, Connector.READ_WRITE);
        is = fconn.openDataInputStream();

    } catch (IOException e) {
        System.out.println(e.getMessage());
    return is;

然后,我替换了在com.omt.epubreader.domain.epub.java中打开文件的调用,所以它变成了这样:

public Book getBook(String url)
{
    InputStream in = ConnectionController.GetFileAsStream(url);

    ...
    return book;
}

之后,我可以成功读取文件,但是出现问题,它无法读取这些部分,即.html文件,所以我在发现问题之前进入了一个简短的调试会话无论谁写了那个库,都会把读取.html文件名的代码留空,在com.omt.epubreader.parser.NcxParser就像是这样:

private void getBookNcxInfo()
{
    ...

    if(pars.getEventType() == XmlPullParser.START_TAG && 
                    pars.getName().toLowerCase().equals(TAG_CONTENT))
    {
        if(pars.getAttributeCount()>0)
        {

        }
    }

    ...
}

我刚刚将此行添加到if子句:

contentDataFileName.addElement(pars.getAttributeValue("", "src"));

之后,它运作得非常完美。