12

I have a game in the Google Play Store that has an option to change the scoring system from points to $'s. Apparently this is a simulation of gambling and illegal in South Korea. I got a official reprimand from Google and they took my app off of the Korean market and raised my maturity rating to "Mature". This extra feature is totally unnecessary for the game play though many users enjoy it. I would like to disable it only in Korea. However I need some way that is reliable.

I though about using locale but the user could change that.

context.getResources().getConfiguration().locale.getDisplayCountry(Locale locale);

I found this:

android.telephony.TelephonyManager.getNetworkCountryIso()

Would the country ISO be guaranteed to be correct? Is there a different method that I am overlooking?

Also, I don't have GPS permission for my app. I think it would be wrong to enable it just for this use case. In addition I have thought about multiple APKs. This would be a last resort. I believe that they would be treated as two separate apps. I would not have all my good ratings and downloads.

Hopefully if I get this working I can have Google reconsider their decision.

Edit: @Nobu Games brings up an excellent point. This does need to work for tablet also.

theJosh
  • 2,894
  • 1
  • 28
  • 50
  • Nice to see such a well-asked question. +1 – T.J. Crowder Jul 07 '12 at 16:55
  • The point with separate ratings and downloads is interesting. I probably will have to build 2 separate apps for 2 separate "markets" but need them treated as 1... – User Jul 07 '12 at 17:12

1 Answers1

4
android.telephony.TelephonyManager.getNetworkCountryIso()

Absolutely

I think locale option is not good, as one can change locale manually, there is a app to do it.

I tried it once. for testing multiple language support for my app.

This answer can help you more.

Community
  • 1
  • 1
AAnkit
  • 27,299
  • 12
  • 60
  • 71
  • 1
    @ theJosh: As the docs say this [may be unreliable on CDMA connections](http://developer.android.com/reference/android/telephony/TelephonyManager.html#getNetworkCountryIso()), there *may* be an argument for [checking the connection type](http://developer.android.com/reference/android/telephony/TelephonyManager.html#getPhoneType()) and disabling the feature for CDMA as well. Everyone's on GSM anyway, right? :-) – T.J. Crowder Jul 07 '12 at 17:01
  • 2
    Is that safe to use on tablets or devices without phone function? – tiguchi Jul 07 '12 at 17:01
  • *"This answer can help you more."* Not really, the linked answer requires GPS permission, and he's said the app doesn't currently require it and that adding it seems over-heavy to him as a solution. – T.J. Crowder Jul 07 '12 at 17:11
  • I worry about tablets but I think this is the best answer. – theJosh Jul 10 '12 at 14:14