Shared Photos – a UPnP/DLNA image viewer for Android

‘Shared Photos’ is a small image viewer for Android that loads and displays images stored on an UPnP/DLNA server in the local network. I wrote it in the last weeks to become familiar Android development. It has some unique features which I could not find in similar apps on Google Play:

  • Support for Low Profile and Immersive Full-Screen Mode.
  • Show image description stored in IPTC metadata as subtitle.
  • Automatic screen rotation: the image is rotated so that it covers as much pixels of the screen as possible.
  • Zooming, panning etc. as in the Android Gallery app.
  • Easy to use. Just start it, choose a server and browse your images.
Albums overview

Albums overview

All images in an album

All images in an album

Show image in Low-Profile Fullscreen Mode (Android 4.3).

Show image in Low-Profile Fullscreen Mode (Android 4.3).

I use some really great libraries in this project, namely PhotoView to display images, metadata-extractor to extract metadata/thumbnails and Cling to access DLNA servers. Thanks for that!

However, although the app uses UPnP/DLNA to communicate with the server, I can’t promise that it works with a lot of servers out there. I almost exclusively tested it with MiniDLNA 1.0.21. For this reason, I decided to not publish it on Google Play for now, maybe at some time in the future. Moreover, the app probably still contains a lot of bugs, as I have not used and tested it extensively. It basically works for me on a Sony Xperia (Android 7.0), Nexus 10 (Android 5.0), Nexus 7 2013 (Android 4.4.4) and Galaxy Nexus (Android 4.3). I will publish it here to get some feedback and because the source code may be interesting for someone.

If you want to try it out, you can download the APK below. As usual, the source is on GitHub. Feel free to fork, play with the code and contribute, if you like.

Update 2015-03-27 Added option to disable automatic screen rotation and subtitles.
Update 2016-04-30 Added option to change size of thumbnails in browser.
Update 2017-06-10 Save scroll position when navigating between folders (thanks to jhavens1566). Support for Android N.


Tags: , , ,

27 Responses to “Shared Photos – a UPnP/DLNA image viewer for Android”

  1. manuel Says:

    this program is amazing!!! Thanks!!!!

  2. manuel Says:

    Please can disable the automatic rotation of the photos? is a suggestion. thx

    • 0xef Says:

      I already thought about an option to disable automatic rotation (as well as subtitles). I will probably add it in the next days.

      • Manuel Says:

        Thank you very much

      • 0xef Says:

        I uploaded a new version that has a “Settings” dialog where you can find an option to disable automatic screen rotation and subtitles.

      • Robert Nusser (@silverfibre) Says:

        Thanks for the app! It works really well, and from those I tried in the Google Play store, this was one of only two which worked while my phone was in hotspot mode, which I need so my Raspberry Pi Zero camera backup can connect to the phone while out and about.

        Why haven’t you put this great app in the Play store?

        I just wish I could download certain images to my phone!

  3. cristian Says:

    Hello yesterday I was recommended this program, I have time looking for a program well for android, is spectacular, all you need to be perfect is there a way to disable the automatic rotation, is uncomfortable to see a picture and that this change its position on screen . that would be great image rotation happens if I change from portrait to landscape the tablet or mobile device, I hope you read this suggestion. again, thank you for this apicación. it’s great !! the hope you update soon.

    I apologize for my English is not my native language

  4. googlephotos Says:


    Shared Photos – a UPnP/DLNA image viewer for Android | 0xef

  5. Marco Says:

    Hi Tobias. Do you have a contact email ? regards Marco.

  6. Isles Says:

    Hey, I just wanted to say that this app is excellent. Only one suggestion that flows from my use:

    -Can you add an option to change the number of columns of images?

    Thanks again for your work.

    • 0xef Says:

      There is now an option to change the size of the thumbnails in the image browser.

      • Isles Says:

        Thanks very much. Would recommend this app to anybody. I actually did think of something else- is there a way to have the app “remember” the position of the scrollbar when returning to a folder using the back key?

  7. Steve Says:

    Great idea and seemingly just what I was hoping to find, really appreciate your work!

    However, when I install this onto my daughter’s Samsung Galaxy to access our DLNA server hosted on our ASUS router, the app sees the server, browses it correctly but then generates, “Error: Current state of the service prevents invoking that action. Can’t parse XML…” when I try to browse into the folder containing the photos.

    Any ideas about what might be the issue or how I might solve it?

    Thanks in advance!

    • Steve Says:

      Sorry, should have mentioned that it’s a Galaxy TAB 9 inch running Android 4.4.2

      • 0xef Says:

        In version 1.2 I updated to version 2.1.0 of the UPnP library Cling, even though I think it won’t help, unfortunately. Although there is a standard for DLNA/UPnP, there are lots of incompatible implementations. All I can is that it works with minidlna and AVM devices.

  8. dev Says:

    It goes on my hdd router drive, it shows thumbnails but after opening any jpg image the app is crashing saying that the app has stopped 😦
    I just love simple things, please is there a way for You to fix this?
    Maybe image library update?
    Is there a way for more to help, give You log or something?
    I run android 5.1.1 on samsung j5

    Much appreciated.

  9. Uwe Says:


    I first had the same situation as dev above, i.e. the app crashing. I made the images considerably smaller then, after that it worked.

    I wonder if instead of creating yet another application to show photos it would be possible to just code a dnla picture provider that would allow to access images via dnla using any application that used picture providers. That would be great.

    Once I found out how to properly create backtraces on Android I will report more details about the crash.


  10. P. Says:

    Great App! Very useful.
    It would be perfect if there were sorting options (ascending, descending, by name, date, size, etc.) or I didn’t find them 😉

  11. Les m Says:

    This sounds great but I was expecting an apk file from the link and what I got was a Man file that I have no idea what to do with. Can you provide instructions please

  12. Steffen Says:

    Hi Tobias,
    I was looking for exactly this kind of program, unfortunately the download link does not seem to work anymore? I was able to find ver. 1.2 in your files folder and installed it.

    But unfortunately the program did not find my minidlna-server. There is just the “wheel of death” for quite a while. Any hints? In general my setup works (e.g. with upnplay).

    Would be happy for any comments, thanks,

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: