Xamarin Android的稳定唯一ID

时间:2019-04-24 11:33:23

标签: android xamarin serial-number imei unique-id

我正在使用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或序列号或两者兼有或唯一的内容(我希望它不需要任何许可,但如果需要的话就可以)

2 个答案:

答案 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。