[英]A Stable Unique Id for Xamarin Android
我正在使用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或序列号或两者或某些独特的东西(我更喜欢它不需要任何许可,但如果必须,那就没关系)
您可以在代码Settings.Secure.GetString(Forms.Context.ContentResolver, Settings.Secure.AndroidId)
下面获取设备IMEI编号表单
@Ialit Maheshwari建议的Android ID实际上不是IMEI。 您可以使用Android Telephony Manager来请求IMEI,但是您还需要权限“READ_PHONE_STATE”,这可被用户视为非常具有侵入性(他们必须同意“允许应用程序制作和管理”之类的内容电话“)。
最后,我还建议使用Android ID。 为了我自己识别用户的目的,它工作正常。
编辑
以下是有关如何在Android和iOS上获取IMEI的信息。 但是,在iOS的情况下,如果您访问IMEI,甚至无法将应用程序提交到App Store。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.