我想创建一个许可系统来激活我的应用程序。为此,用户必须发送他的IMEI (或电话上从不改变的号码,以便识别它)。
经过我的研究,我没有找到如何获得手机的IMEI。有一个device_info包,但是这个包没有给我这个信息。
我看到现在我们可以使用UUID了。但我想知道,如果我重启手机或重新安装应用程序,它可能会发生变化。这是真的吗?
安装我的应用程序的手机可以重置,并经常重新安装应用程序。那么我应该怎么做才能拥有一个永远不会改变的电话号码,让我可以构建离线的许可证系统呢?
提前感谢您的建议。
发布于 2020-12-05 18:27:30
也许可以用这个Flutter插件试试:https://pub.dev/packages/imei_plugin
更新
根据Documentation的说法,UUID (Android10和更高版本)可能会在出厂重置时发生变化。
是用户首次设置设备时随机生成的64位数字(十六进制字符串),在用户设备的生命周期内应保持不变。如果在设备上执行出厂重置,则该值可能会更改。
关于安卓更新上的UUID行为,网上没有太多的文档,但你可以查看This answer
上更改
因此,您应该考虑使用不同的许可系统方法,或者选择支持选项,以便在工厂重置后将许可证更改为新的UUID。
发布于 2021-04-29 23:32:54
根据Android docs的说法,从安卓10和更高版本开始,从playstore下载的应用程序不能声明特权权限,如用于访问IMEI的READ_PRIVILEGED_PHONE_STATE:

我建议使用UUID,你可以使用unique_identifier插件。实际上,它会发生变化,如何关联到您在服务器上管理的另一个唯一id,比如在服务器上有一个表来存储这两者,您的移动应用程序UUID和另一个永远不会更改的标识符,当UUID在移动应用程序上更改时,您可以直接在服务器上更新它?
https://stackoverflow.com/questions/65155861
复制相似问题