User Tools

Site Tools


xplore:defaults

Setting default application for some file type

Here is the usual user's request: setting default app to open a file (for example to open jpeg images in gallery app).

Many users of Android devices come to situation when they open a file, and that file is opened by particular app. Or if there are more installed apps that can do same thing, user gets system dialog where it's possible to select desired app to handle it.

From Windows we're used that we can set app to open a file based on file extension. For example, .jpg files are opened in image viewer of our choise. This is possible to edit from Control panel, or from context menu on a file.

However, that's not working this way on Android. There is no simple mapping of file extension to app. So how does it work?

On Android, each application must declare itself which file types it can open (or edit, or send, etc). The file type may be specified by mime type, or file extension or even by other means, and apps can also filter this further by specifying if they can handle local files or remote files accessed over network. Furthermore there is not only single open action, but also many other such as dial number, send file, send multiple files, send email, and many more. Android calls these actions as »intent« (to do something), and lots of data handling among apps happens by these intents, which may be triggered by user, or without user's interaction.

So what means this to user? Simply that it's not that simple on Android such as clicking on file with extension to open any app of choice. And it's not possible to edit this behavior, or assign app to file type.

What is possible then? When Android determines that multiple apps can handle same intent (for example to open image file), it asks user which app to use. Then it's also possible to remember this selection as action to do always (or next time) when same kind of file is opened (or edited, or sent, whatever). Android remembers this combination of intent type and opening application somewhere internally, and doesn't let user or apps to see or edit this.
Very limited way to do something here is to Clear defaults for particular app, so that Android forgets association of the app to handle all file types that were assigned to it. This can be done in App info screen for app. Newer Android versions allow somehow deeper investigation in the Open by default menu item, but user still won't learn too much about this.

So to sum it up, get used to Android's nice way to handle your intent to do something, and don't expect it to behave same like on a PC computer.

X-plore's solution

X-plore is a file manager that can do magic with files. So it's also prepared to open files otherwise than what Android determines as best thing to do.

The function is called Open by… and is offered when long-clicking on a file. Then opening a file ignores any system defaults set for the file, and shows dialog to pick compatible app to open the file.
Additionally there is Open as item in the dialog, that allows to specify / override content of the file (e.g. if it is text, image, audio or video). This way, some files with unknown extension can be forced to be opened as text file, or image file.

Finally, there is last offered file type which is shown as */* 1), and when choosing this, you should get all possible apps to open the file. Use this as last help to find an app to open your file, but note that some combinations won't help, such as opening mp3 file as contact, so you should know what you want to achieve.
1) This is actually mime type meaning any content
xplore/defaults.txt · Last modified: 2016/05/10 19:10 (external edit)