¿Cómo leer todo el contenido del archivo Epub en Android?

Quiero leer todo el contenido de todos los toc.
¿Puede decirme cómo leer todo el capítulo que está en la tabla de contenido (toc)?
Publique el código modificado para que podamos leer todo el contenido o publicar algo para que yo pueda leer el contenido.

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       AssetManager assetsmanger=getAssets();

        try {                                   
             // find InputStream for book                   
                InputStream  epubInputStream=assetsmanger.open("books/INCOME-TAX-ACT-1961.epub");

              // Load Book from inputStream
              Book book = (new EpubReader()).readEpub(epubInputStream);

            // Log the book's authors                         
              Log.i("epublib", "author(s): " +book.getMetadata().getAuthors());

                // Log the book's title  
             Log.i("epublib", "title: " + book.getTitle());

        String data=new String (book.getContents().get(3).getData()); 
         String k=data;
                web1=(WebView)findViewById(R.id.webView1);    
//                txt1=(TextView) findViewById(R.id.textView1);
//                txt1.setText(k);
            web1.loadData(k," text/html", "utf8");

        Bitmap coverImage=BitmapFactory.decodeStream(book.getCoverImage().getInputStream());

         Log.i("epublib" , "Coverimage is " + coverImage.getWidth() + " by "
                  + coverImage.getHeight() + " pixels");
        // Log the tale of contents
         logTableOfContents(book.getTableOfContents().getTocReferences(), 0);

    //     list=(ExpandableListView)findViewById(R.id.expandableListView1);


//      img1=(ImageView)findViewById(R.id.imageView1);    
//            img1.setImageBitmap(coverImage);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                 Log.e("epublib", e.getMessage());
            }
            catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

    private void logTableOfContents(List<TOCReference> tocReferences, int depth) {
        // TODO Auto-generated method stub

        if(tocReferences== null ){
            return;
        }
        for(TOCReference tocReference:tocReferences){
            StringBuilder tocstring=new StringBuilder();
            for(int i=0;i<depth;i++)
            {
                tocstring.append("\t");

            }
            HashMap<String, String> map = new HashMap<String, String>();


        String k=   tocstring.append(tocReference.getTitle()).toString();
        map.put("TOC",k);
        ArrayList<HashMap<String, String>> list1 = new ArrayList<HashMap<String, String>>();
        list1.add(map);
        String t=k;
             Log.i("epublib", tocstring.toString());
             logTableOfContents(tocReference.getChildren(), depth + 1);

        }           
    }                                     
    }

Respuestas a la pregunta(1)

Su respuesta a la pregunta