Firebase Auth获取用户所在国家

时间:2016-12-16 06:40:07

标签: android firebase-authentication

我正在使用Firebase身份验证与谷歌登录和Facebook登录

有没有其他方法可以知道用户来自哪个国家/地区?

在应用知道用户来自哪个国家/地区之后,该应用将决定向用户显示哪个服务/未来。

1 个答案:

答案 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();