繁体   English   中英

Xamarin Android的稳定唯一ID

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM