I think ip is the best way, because it will give you the country where the phone is at the moment,
If you do it with
Locale.getDefault().getCountry();,
you have a country in which the user selects a country so that you can choose England, and you can be in Spain, and maybe you need to know where he is at the moment
Example: imagine that your application can buy something ONLY in England, a user from Spain, but he is on vacation in England and he wants to buy your product ... if you use
Locale.getDefault().getCountry();
that the user will not be able to buy your product, so ip is the best way, I think
D4rWiNS May 10 '13 at 12:48 2013-05-10 12:48
source share