Android从Google帐户检索用户所在国家/地区

时间:2016-05-23 09:04:52

标签: android location country

我正在使用基于用户所在国家/地区进行内容过滤的应用。据我所知,可以通过App Store在iOS上获得国家/地区。有没有可能通过Google Play在Android上执行此操作?

不可接受的解决方案列表:

  1. 区域设置:用户可能住在法国,但有英语区域设置,所以这个 不管用。
  2. 电话经理:平板电脑怎么样?如果用户 出国改变了SIM卡?
  3. IP或地理定位:用户可能会出国,因此不会过滤。
  4. 我的应用程序有应用内购买,我可以在ISO 4217中获得货币代码。但是这个部分解决方案,那么欧元区呢?

1 个答案:

答案 0 :(得分:0)

您可以使用将根据用户的IP地址返回位置的Web服务。以下是其中一个Web服务的示例:

private class AsyncTaskClass extends AsyncTask<Void, JSONObject, JSONObject> {

        @Override
        protected JSONObject doInBackground(Void... params) {

            OkHttpClient client = new OkHttpClient();
            Request request = new Request.Builder()
                    .url("http://ip-api.com/json")
                    .build();

            try {
                Response response = client.newCall(request).execute();
                return new JSONObject(response.body().string());
            } catch (IOException | JSONException e) {
                e.printStackTrace();
                return null;
            }
        }

        @Override
        protected void onPostExecute(JSONObject data) {
            try {
                Log.i("Country", data.getString("country"));
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }