我必须在这里下载country
的地图,而不必使用复杂的UI
进行选择。
简而言之,我需要以某种方式检测country
并从此处下载country
的离线地图。
我知道这可以解决问题。
List<Integer> idList = new ArrayList<>();
idList.add(country.getId());
mMapLoader.installMapPackages(idList)
但是我不知道如何获取MapPackage
country 对象。
我不想实施列表UI
并从中选择国家。
我想检测我的MapPackage
国家并直接下载。
答案 0 :(得分:0)
您可以使用设备的语言环境来查找国家/地区:
String locale = context.getResources().getConfiguration().locale.getDisplayCountry();
或者您可以通过用户在手机中使用的SIM卡使用位置:
TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String countryCode = tm.getSimCountryIso();
答案 1 :(得分:0)
以下是国家/地区代码的代码
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”])
答案 2 :(得分:0)
以下是国家/地区代码的代码
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 );
}