чтение файла epub в blackberry - PullRequest
       17

чтение файла epub в blackberry

4 голосов
/ 25 декабря 2011

подскажите подсказку, как запустить приложение Epub Reader для BlackBerry?

Мне нужен самый простой способ сделать это, есть ли браузер или компонент пользовательского интерфейса, который может читать и отображать это?

Я хочу загрузить его с сервера, а затем просмотреть его для чтения пользователем.

1 Ответ

2 голосов
/ 10 февраля 2012

пару дней назад была добавлена ​​библиотека для чтения Epub здесь , я пытался ее использовать, но у нее есть некоторые трудности, она может открывать 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"));

и после этого он работал просто отлично.

...