15

I'm looking to see if there is any way to tell what country version of the play store a user has on their android phone.

Basically I want to turn off In-App Purchasing for certain countries (for tax collecting reasons). I have tried Locale but that can be changed by changing the Language in the phone. I figured the only thing that can determine what country they are from would be by the Google account that is connected to the play store.

Any help would be much appreciated. Thank You.

TomD
  • 604
  • 1
  • 7
  • 22
  • 2
    Google will determine the Play store country based on the Ip Address when the user has signed up the google account in their Mobile. - We can check this by removing the google account from Settings > Accounts. - Change the IP address using any VPN like (Tunnel Bear) - Add the google account. - Play store country will be changed – Nithin Raja Aug 23 '17 at 03:57

5 Answers5

7

I have one idea about it, but i haven't try it yet (maybe smbd can give some feedback about using this approach).

The idea is to use getSkuDetails to get price_currency_code and disable billing for some currencies.

j2esu
  • 1,647
  • 1
  • 16
  • 26
  • I also think this is the best answer, and is what I will do for my app. On the iOS version, we are using the SKProduct.priceLocale - getSkuDetails seems to be the equivalent. – Nigam Shah Oct 05 '17 at 20:48
  • 3
    some currency_code have more than one country,not well – shuabing Apr 08 '19 at 08:29
1

Google will determine the Play store country based on the Ip Address when the user has signed up the google account in their Mobile.

  • We can check this by removing the google account from Settings > Accounts.

  • Change the IP address using any VPN like (Tunnel Bear)

  • Add the google account.

  • Play store country will be changed

Nithin Raja
  • 1,144
  • 12
  • 11
0

I'm not sure about programmatically checking their google account country, but if you want to target specific regions, you can do that within the Google Play Developer console.

Geographic targetting

Google Play Instructions for determining country

Even if it isn't a program/code answer, I hope this solves your problem much more easily than having to figure that out in your application.

Otra
  • 8,108
  • 3
  • 34
  • 49
  • This is what I am currently doing.. and having to support two apps to do it (one for USA and one for International). I am looking to see if it is possible to just maintain one baseline. Thank you though – TomD Jul 30 '14 at 17:11
  • So is it that you want to localize or that you want two different pay structures based on country? – Otra Jul 30 '14 at 17:27
  • I want to only charge in the US. – TomD Jul 30 '14 at 19:16
  • So is it not possible to override the pricing for other currencies based on location? https://support.google.com/googleplay/android-developer/answer/1169947 – Otra Jul 30 '14 at 19:35
  • You can change prices there... but you can't set them to zero. – TomD Jul 31 '14 at 11:55
  • @TomD have you found a way to determine play store country programmatically? – ARLabs Dec 16 '15 at 13:48
  • Unfortunately I have not. – TomD Dec 17 '15 at 15:05
  • That's not really separate apps, these are flavours of the same app. – Alex Cohn Jan 28 '20 at 22:15
0

You can not tell what country version of the play store a user has on their android phone programmatically because google play determines users country internally.

The only way to do that is to get users current location via LocationServices, in that case you need to add location permissions.

There are a few workarounds to that problem that does not work in all cases, like getting users career information which can provide country information.

Iris Veriris
  • 448
  • 5
  • 7
0

There is no way to do precisely this. Instead, you could accept an answer to a similar question,

What country is the phone currently connected to?

This can be answered reliably as long as the device is a phone. Have to support tablets? Still no luck...

androidguy
  • 3,005
  • 2
  • 27
  • 38