我正在建立一个flutter应用程序,我要求用户输入他们的电话号码,以开始在登陆页面上注册刚过闪屏。我不希望在这个阶段要求位置许可,因为我觉得这会影响用户的体验。
我看了一下Telegram和Twitter应用程序,注意到它们甚至不需要android权限就能检测到拨号代码。
我假设他们得到用户的国家,然后根据这个显示拨号代码。但是他们是如何获得国家的,在不征求用户许可的情况下获得国家代码合法吗?
我想是从你的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;
它将获取设备区域设置的国家代码。还没有测试,但是这个方法应该可以工作,享受:)