提问者:小点点

像Telegram和Twitter这样的应用程序是如何在不要求位置权限的情况下自动检测国家拨号代码的呢?


我正在建立一个flutter应用程序,我要求用户输入他们的电话号码,以开始在登陆页面上注册刚过闪屏。我不希望在这个阶段要求位置许可,因为我觉得这会影响用户的体验。

我看了一下Telegram和Twitter应用程序,注意到它们甚至不需要android权限就能检测到拨号代码。

我假设他们得到用户的国家,然后根据这个显示拨号代码。但是他们是如何获得国家的,在不征求用户许可的情况下获得国家代码合法吗?


共2个答案

匿名用户

我想是从你的ISP/IP地址看的吧?有API可用,可以猜测国家和更多的基于IP。

https://ip-api.com/

https://kickfire.com/api

有些ISP也只在某些国家/地区提供,它们有固定的IP地址范围。

匿名用户

我建议您将这个包导入到您的pubspec.yaml:https://pub.dev/packages/intl

然后在代码中简单地调用:

final _countryCode = Localizations.localeOf(context).countryCode;

它将获取设备区域设置的国家代码。还没有测试,但是这个方法应该可以工作,享受:)