If you are running a Linux box you may not be able to transfer files from your Android Device. Starting with Android 4.0 Ice Cream Sandwich, the OS switched to MTP from USB Mass Storage mode for access to the device’s storage via USB. MTP (Media Transfer Protocol) carries several benefits over USB Mass Storage. Unlike the latter, MTP allows you to simultaneously access the storage on both the device as well as the computer. Also, with MTP, corrupt file transfers are theoretically much less probable.
While accessing the storage via MTP from a Windows PC or a Mac is a piece of cake due to excellent driver support, doing so in Linux can be a hassle, as the OS doesn’t ship with said support by default. Why Android have decided on this restriction, I have no idea but I have found a small program in Arch’s AUR repositories which allows access.
There are no restrictions on the types of files gMTP can handle as it has the ability to handle all metadata correctly for all media files. And gMTP handles both internal and external media as well.
In conclusion this exercise has helped to better understand MTP and had given me the option to run various programs that I would not of been interested in if there was no restriction.