我正在使用Firebase身份验证与谷歌登录和Facebook登录
有没有其他方法可以知道用户来自哪个国家/地区?
在应用知道用户来自哪个国家/地区之后,该应用将决定向用户显示哪个服务/未来。
答案 0 :(得分:6)
方法1: 试试这个代码。此代码将根据所连接的国家/地区的网络返回国家/地区代码。 see here。没有SIM卡,它将无法运作。
TelephonyManager tm = (TelephonyManager)this.getSystemService(this.TELEPHONY_SERVICE);
String countryCodeValue = tm.getNetworkCountryIso();
方法2: 如果您的设备已连接到互联网,则可以使用此链接http://ip-api.com/json。它会根据ip地址自动检测设备返回位置详细信息的IP地址。
方法3 :您可以从GPS获取位置。
LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
String provider = locationManager.getBestProvider(criteria,true);
Location curLocation = locationManager.getLastKnownLocation(provider);
Geocoder geocoder = new Geocoder(context, Locale.getDefault());
List<Address> addresses = null;
addresses = geocoder.getFromLocation((double)curLocal.getLatitudeE6(),(double)curLocal.getLongitudeE6(),1);
String countryCode= addresses.get(0).getCountryCode();