我正在构建一个需要用户所在国家/地区的应用程序。如果用户使用的是智能手机,我可以轻松获取该国家/地区
telephonyManager.getNetworkCountryIso()
但是如果他们不使用SIM卡,即如何使用它,我怎么能实现这个目标呢?
非常感谢任何帮助
由于
答案 0 :(得分:1)
尝试此操作以检查用户是在平板电脑上还是在手机上:
TelephonyManager telephonyManager1 = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
if(telephonyManager1.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE) {
// TABLET
}
else {
// YOUR PREVIOUS CODE
}
如果用户在平板电脑中,也许您可以尝试使用区域设置?我知道这不会给你这个位置,但也许你可以尝试找出用户所拥有的Locale:
String locale = context.getResources().getConfiguration().locale.getCountry();
希望它有所帮助!
答案 1 :(得分:0)
您可以获取用户位置(粗略近似值就足够了),然后使用地理编码器查找大致地址以确定国家/地区。
事实上,您的问题类似于this一个。
但在Android中,你现在可以内置Geocoder,因此无需专门调用webservice并解码json。有关如何获取用户位置的信息,请参阅Location Guide;有关如何检索位置的信息,请参阅Geocoder API。
答案 2 :(得分:0)
就个人而言,我会将逻辑扩展到这样的东西:
这样你就可以覆盖尽可能多的场景。
NB 区域设置不会向您提供当前的国家/地区,但取决于您在Android设备中选择的语言。即,如果您的手机是俄语,您将始终获得俄罗斯。