I know this question does not have a specific answer but I believe the experience of fellow developers might be useful to the community.
I want to send a file to server from Android device, given unreliable and slow internet connection on this devices (in most part of the world).
My Question
What should be the maximum size of file I should attempt to send from the device to the server reliably?
I think your question is quite broad and there are several parameters which will influence the answer:
1) What is the average internet speed for your users? It varies a lot (from EDGE to 4G, which which could have 100 to 1000 times difference in speed).
2) Will your used charged per megabyte? If so, it’s not smart to upload huge amount of data
3) What type of information are you trying to send? As example, if it’s text entered by user, most likely you don’t need to worry about size at all (because a user won’t be able to enter megabytes of text). If it’s a video – you may need to apply some limits.
My recommendation would be – let a user decide. Choose some default maximum size (let say 10Mb). And make it configurable, so if a user tries to upload file bigger than maximum, you will show some notification that it exceed maximum size and that user can change it.