2013-01-31 22 views
0

可能重复:
What Country is the User Currently In?
How to programmatically detect in which country the android device is located currently without using GPS?退出应用程序推出美国之外

是否有可能阻止应用程序,下载的用户的设备上,从启动基于国家用户的设备?我如何准确确定用户的国家?

我的应用程序将可以在WiFi和运营商(GSM/CDMA)的设备。

我知道我可以限制该应用在谷歌播放某些地区却没有受到什么阻碍用户在美国这里下载该应用程式,然后前往自己的国家,并使用应用程序。所以,我想尽快退出应用程序,因为我知道用户不在美国。我能想到的确定位置的这些机制,但是不能确定这些防呆:

  1. IMEI - 没有帮助,我能买到的设备在美国,但使用它的任何地方
  2. SIM - 我可以使用SIM从美国,并在漫游等
  3. 无线网络 - 不认为我可以准确地告诉用户的地理
  4. 日期/时间设置 - 我总是可以假装我在美国
  5. TelephonyManager - 我不知道如果这里有任何方法可以帮助准确确定地点

我有什么选择?

谢谢!

+1

我相信你已经回答了你自己的问题。举个例子,英国的许多人下载了来自亚马逊的“当日应用程序”,而它仅仅是美国的。没有傻瓜证明的方式。 – Simon

+1

可能的重复项:[here](http://stackoverflow.com/questions/10755534/how-to-programmatically-detect-in-which-country-the-android-device-is-located-cu)和[here] (http://stackoverflow.com/questions/4044356/what-c​​ountry-is-the-user-currently-in) – vault

+1

结合它。但问题是,为什么你想限制它? – Leandros

回答

0

如果你的应用需要连接,我会说IP地理定位。

+3

用代理轻松击败 – Simon

+0

是没有什么防弹。您始终可以检查IP地理位置是否为您提供与Android位置相同的国家/地区。 –

0

如果用户对设备的访问,他/她可以随时假的位置。

你必须决定你要多少精力花费阻止人们使用你的应用程序。在您的努力与在美国以外使用您的应用程序的难度之间存在权衡。你永远不会排除大家;)

因此,我建议实施几个简单的机制。

0

首先,获取LocationManager。 然后,调用 LocationManager.getLastKnown 然后,创建地理编码器,并调用 GeoCoder.getFromLocation。 这是一个单独的线程!这 会给你一个地址 对象的列表。打电话 Address.getCountryName ,你明白了。

这可能是有用的

+0

你确定它是真的吗? – sanghavi7