Скачайте здесь карту для страны напрямую (без ее выбора) - PullRequest
0 голосов
/ 26 июня 2019

Я должен скачать здесь карту для моего country, не используя комплекс UI для его выбора.

Просто мне нужно как-то обнаружить country и загрузить отсюда автономную карту для country.

Я знаю, что это решит проблему.

 List<Integer> idList = new ArrayList<>();
        idList.add(country.getId());
mMapLoader.installMapPackages(idList)

Но я не знаю, как получить объект MapPackage country .

Я не хочу реализовывать список UI и выбрать из него страну .

Я хочу определить мою MapPackage страну и загрузить ее напрямую.

Ответы [ 3 ]

0 голосов
/ 26 июня 2019

ниже указан код страны

    String UserIP = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (string.IsNullOrEmpty(UserIP))
{
    UserIP = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
string url = "http://freegeoip.net/json/" + UserIP.ToString();
WebClient client = new WebClient();
string jsonstring = client.DownloadString(url);
dynamic dynObj = JsonConvert.DeserializeObject(jsonstring);
System.Web.HttpContext.Current.Session["UserCountryCode"] = dynObj.country_code;

Используя вышеупомянутую функцию, вы можете получить код страны, чтобы вы могли напрямую передать его в качестве параметра своей функции например: mMapLoader.installMapPackages (System.Web.HttpContext.Current.Session ["UserCountryCode"])

0 голосов
/ 26 июня 2019

ниже приведен код для кода страны

    String UserIP = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (string.IsNullOrEmpty(UserIP))
{
    UserIP = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
string url = "http://freegeoip.net/json/" + UserIP.ToString();
WebClient client = new WebClient();
string jsonstring = client.DownloadString(url);
dynamic dynObj = JsonConvert.DeserializeObject(jsonstring);
System.Web.HttpContext.Current.Session["UserCountryCode"] = dynObj.country_code;

Используя вышеуказанную функцию, вы можете получить код страны, чтобы вы могли напрямую передать его в качестве параметра в вашу функциюнапример: mMapLoader.installMapPackages (System.Web.HttpContext.Current.Session ["UserCountryCode"])

на Java

    public static final Map<String, String> COUNTRY_MAP;
static {
    Map<String, String> map = new HashMap<String, String>();
    map.put("AF", "afghanistan"); // here put your country dynamically 
    map.put("AL", "albania");
    ...
    map.put("ZW", "zimbabwe");
    COUNTRY_MAP = Collections.unmodifiableMap( map );
}
0 голосов
/ 26 июня 2019

Вы можете использовать локаль устройства, чтобы найти страну:

 String locale = context.getResources().getConfiguration().locale.getDisplayCountry();

или вы можете использовать местоположение через симку, используемую в телефоне пользователем:

TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String countryCode = tm.getSimCountryIso();
...