我正在使用xamarin形式开发android应用(将来可能会开发uwp应用,而不是ios应用)。
我尝试了一些库,例如
https://github.com/jamesmontemagno/DeviceInfoPlugin
在库中,名为Id的属性实际上是Build.Serial,并有相应说明
Id不应将此值用作稳定ID,因为Android上的每个供应商 可能会或可能不会将其设置为其他值,并且在iOS上已更改 卸载应用程序时。
,我尝试了来自同一库的方法GenerateAppId,但它为每个调用生成了不同的ID号。
之后,我尝试了https://www.nuget.org/packages/Acr.DeviceInfo/ 并且DeviceId也是Build.Serial
据我了解,此ID可能会更改。因此,我需要从该设备获得一个真正稳定的唯一ID,并且能够从同一设备生成相同的唯一ID(我不想保存它,因此可以通过一定的计算获得该数字)
我用过
Android.Provider.Settings.Secure
.GetString(context.ContentResolver, Android.Provider.Settings.Secure.AndroidId);
和Android.OS.Build.Serial
我得到两个不同的数字,但不确定其中一个是否稳定。
有没有一种方法可以访问真正的IMEI或序列号或两者兼有或唯一的内容(我希望它不需要任何许可,但如果需要的话就可以)
答案 0 :(得分:0)
您可以在代码Settings.Secure.GetString(Forms.Context.ContentResolver, Settings.Secure.AndroidId)
下获得设备IMEI编号表格
答案 1 :(得分:0)
@Ialit Maheshwari建议的Android ID实际上不是IMEI。您可以使用Android Telephony Manager来请求IMEI,但是您还需要权限“ READ_PHONE_STATE”,该权限被用户视为非常具有侵略性(他们必须同意“允许应用程序进行制作和管理电话”)。
最终,我还建议您使用Android ID。对于我自己识别用户的目的,它工作正常。
编辑
Here是有关如何在Android和iOS上获取IMEI的信息。但是,如果使用iOS,则访问IMEI甚至无法将应用提交到App Store。