如果在美国境外发布退出应用

时间:2013-01-31 16:54:29

标签: android geolocation

  

可能重复:
  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)的设备上提供。

我知道我可以将应用限制在Google Play上的某些地理位置,但没有任何内容阻止用户在美国下载应用,然后前往他们自己的国家并使用该应用。因此,我想尽快退出应用,因为我知道用户不在美国境内。我可以想到这些确定位置的机制,但不确定这些是否是万无一失的:

  1. IMEI - 没用,我可以在美国购买该设备,但可以在任何地方使用
  2. SIM - 我可以使用美国的SIM卡进行漫游等
  3. WiFi - 不要以为我能准确地告诉用户的地理位置
  4. 日期/时间设置 - 我总是可以假装我在美国
  5. TelephonyManager - 我无法确定这里的方法是否有助于准确确定位置
  6. 我有什么选择?

    谢谢!

4 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

如果用户有权访问该设备,他/她总是可以伪造该位置。

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

因此,我建议实施一些简单的机制。

答案 2 :(得分:0)

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

这可能很有用

答案 3 :(得分:0)

您可以在启动应用时通过GPS获取位置。您可以检查国家/地区,如果不是美国,则用户无法打开该应用。我想你应该看看这个: http://developer.android.com/reference/android/location/Address.html