8

ユーザーのデバイスで GPS がオフになっていて、アプリが位置情報にアクセスできない場合でも、デバイスが存在する国 (iso3) を特定する必要があります。

また、SIM カードがなく、telephonyManager を使用できないタブレットも考慮する必要があります。

このため、ロケーションマネージャーを使用できるとは思いません (また、次の理由により: LocationManager requestLocationUpdates does not work )

私が必要だと考えているアプローチは、サードパーティの IP ロケーション API に対して単純な HTTP リクエストを作成することです: http://www.ipinfodb.com/ip_location_api.php または https://freegeoip.net

これが最善の方法ですか?使用するのに最適なオープン API は何ですか?

4

2 に答える 2

8

サードパーティの ip location api のアプローチは、現在のところ正しいようです。多分これはあなたを助けるでしょう

http://ip-api.com/docs/api:json

http://ip-api.com/json

于 2015-03-06T20:37:47.963 に答える
4

TelephonyManager を使用できます

TelephonyManager tm = (TelephonyManager)this.getSystemService(this.TELEPHONY_SERVICE);
String countryCode = tm.getNetworkCountryIso();

更新: テレフォニーを使用できないため、ユーザーがデバイスをセットアップするときに入力を取得するため、これを試すことをお勧めします。

String locale = context.getResources().getConfiguration().locale.getCountry();
于 2015-03-06T20:24:00.147 に答える