eXport-it, android  UPnP Client/Server

eXport-it android UPnP/HTTP Client/Server

Android


an Android wireless file sharing application for video, audio, images and ebooks




Client





When starting the client you get a screen like here below:

upnp client

On the title bar, you have the connection type (Wifi or Mobile) and the local IP address of this network interface. In the middle of the screen you have a toggle button and just below the list of the media servers. A click on the toggle button gives the list of all UPnP devices found on this network. If you select an other device than a media server, you can read its XML presentation text.




Selecting a server in the list, must give a second panel (if the server is distributing data) like in the image.
On this screen you can go back to the initial server list clicking on the small “house” on the right top corner. In the middle of the screen are the lists of files exported by the server. You can select all files in a list selecting the checkbox near the list name, then
clicking on the list (same method to deselect all).


client02


You can select and unselect files with the associated checkbox. To click on the filename gives the same result because on smartphones the checkbox is small.

When files are selected in a list, you can play these files pushing on the button, or you can get a local copy with another button. You can also "clean" the screen of all the names, before going to another list or not. video streaming

The video and audio files are played with android media player. It supports only 3gpp, webm and mp4 videos, and m4a, ogg and mp3 audio files. The images are shown through a webview.

Videos are shown on full screen landscape mode only, without button. You have to click on the screen to get the control buttons (pause, stop, ..), and again to remove the buttons. Images are also displayed full screen mode without button, with a delay of 3 seconds. You can pause the show just clicking in the middle of the image, then going backward clicking on the left and to the next image on the right. A long click of more than a second stops the show.
audio streaming

audio streaming
image display


ebook reading over wifi network
Reading eBooks over Wifi network

About the eBooks, I didn’t write an application, but the qPDFViewer support suggested to use their product for reading PDF files starting it as a View intent. This action requires to start it as a “new” task, thus after viewing the document, the eXport-it client is automatically re-initialized by android.

I tested this method with other products, and currently, the eXport-it client has the support for qPDFViewer, Acrobat Reader and FBReader with its PDF plugin for reading .pdf. For reading other eBook types, only FBReader , CoolReader, and ZoReader, are supported.



I plan to continue testing with other eBook readers able to read “on-line” from an URL. The eXport-it client can support maximum 4 PDF readers and 4 eBook readers installed concurrently (if more only the 4 first are displayed), a dialog window is shown before starting a sequence of eBooks reading, for selecting the viewers if more than one is installed.

Reading eBooks over Wifi or Internet

Another method for reading eBooks consists in using a reader supporting OPDS catalogs (like Moon Reader, FBReader, etc…) and to point to the URL of the eXport-it server adding “/opds” after the port number, something like //192.168.1.47:8192/opds.

opds catalog ebook reading over Internet


Performances issues and known limitations

By design, the eXport-it client works with only four categories of files: video, audio, images and eBooks. It is traduced, on UPnP, by only four containers for the items. The “normal” UPnP servers work totally differently, defining a very complex containers structure, based not only on the file type, but on directory names, name of the author or actor, year of publication… The same item appears very often multiple times…

When the eXport-it client accesses such a server, it must perform a complex acion for reading of the global containers structure, deleting all duplicate items, for presenting the simple lists in summary. This process uses heap memory intensively and can require a lot of time, with very poor performances.