0

重複の可能性:
ユーザーは現在どの国にいますか?
GPSを使用せずにAndroidデバイスが現在どの国にあるかをプログラムで検出する方法は?

ユーザーのデバイスの国に基づいて、ユーザーのデバイスにダウンロードされたアプリが起動しないようにすることはできますか? ユーザーの国を正確に特定するにはどうすればよいですか?

私のアプリは、WiFi とキャリア (GSM/CDMA) ベースのデバイスの両方で利用できます。

アプリを Google Play の特定の地域に制限できることはわかっていますが、ユーザーがここ米国でアプリをダウンロードし、自国に旅行してアプリを使用することを妨げるものは何もありません。そのため、ユーザーが米国外にいることがわかったらすぐにアプリを終了したいと思います。場所を決定する次のメカニズムを考えることができますが、これらが確実かどうかはわかりません。

  1. IMEI - 役に立たない。デバイスは米国で購入できるが、どこでも使用できる
  2. SIM - 米国の SIM を使用でき、ローミングなどを利用できます
  3. WiFi - ユーザーの地域を正確に伝えることができないと思います
  4. 日付/時刻の設定 - いつでも米国にいるふりをすることができます
  5. TelephonyManager - ここにある方法が場所を正確に特定するのに役立つかどうかはわかりませんでした

私のオプションは何ですか?

ありがとう!

4

4 に答える 4

0

アプリで接続が必要な場合は、IP ジオロケーションと言えます。

于 2013-01-31T16:56:45.337 に答える
0

ユーザーがデバイスにアクセスできる場合、いつでも場所を偽造できます。

人々があなたのアプリを使わないようにするために、どれだけの労力を費やすかを決める必要があります。あなたの努力と、あなたのアプリを米国外で使用するのがどれほど難しいかの間には、トレードオフがあります. 全員を除外することはありません ;)

したがって、いくつかの簡単なメカニズムを実装することをお勧めします。

于 2013-01-31T17:01:07.110 に答える
0

アプリの起動時に GPS で位置を取得できます。国を確認できます。米国でない場合、ユーザーはアプリを開くことができません。これを見てみるべきだと思います: http://developer.android.com/reference/android/location/Address.html

于 2013-01-31T17:10:43.523 に答える
0

まず、LocationManager を取得します。次に、LocationManager.getLastKnown を呼び出します。次に、GeoCoder を作成し、GeoCoder.getFromLocation を呼び出します。これは別のスレッドです!! これにより、Address オブジェクトのリストが表示されます。Address.getCountryName を呼び出すと、取得できます。

これは役に立つかもしれません

于 2013-01-31T17:07:51.177 に答える