2016-05-23 75 views
1

我正在開發基於用戶國家進行內容過濾的應用。據我所知,有可能通過App Store在iOS上獲得國家/地區。是否有可能通過Google Play在Android上執行此操作?解決方案,這是不能接受的Android從Google帳戶檢索用戶國家

列表:

  1. 區域設置:用戶可以生活在法國,但對英文的語言環境,所以這 將無法​​工作。
  2. 電話經理:那麼平板電腦呢?如果用戶 出國並更換SIM卡?
  3. IP或地理位置:用戶可能會出國,因此沒有過濾。

我的應用程序有應用程序內購買,我可以在ISO 4217中獲得貨幣代碼。但是,這個部分的解決方案,歐元區呢?

+0

https://developers.google.com/maps/documentation/geocoding/start?csw=1#geocoding-request-and-response-latitudelongitude-lookup –

+0

@IntelliJAmiya我無法使用IP或地理位置。請參閱#3 – costello

+0

如果您想從Google帳戶獲取信息,請撥打REST來致電Google以閱讀他們的個人資料。其中一個領域是位置(我忘了它是城市還是國家)。通過OAuth進行身份驗證。此解決方案獨立於Android - 也可以在iOS應用或Web應用中使用。 –

回答

0

您可以使用Web服務,它將根據用戶的IP地址返回位置。下面是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(); 
      } 
     } 
    } 
+0

我不能使用這個,因爲如果用戶出國? IP將有所不同 – costello

+0

如果是這樣的話,您可以在安裝應用程序時向用戶詢問用戶,並將其存儲在'SharedPreferences'中以過濾您的內容。 –