You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Xamarin Android中获取设备唯一ID以实现陌生设备登录告警?

在Xamarin Android中获取唯一设备ID实现陌生设备登录告警

可以获取适合该场景的设备标识,不过要选对稳定且权限要求低的类型,以下是具体方案和建议:

推荐使用的设备标识:Android ID

Android ID是系统在设备首次启动时生成的64位字符串,除非恢复出厂设置或刷机,否则不会变更,而且无需申请敏感权限,兼容性覆盖绝大多数Android设备,非常适合你的场景。

获取Android ID的代码示例:

using Android.Provider;

public string GetUniqueDeviceId()
{
    var appContext = Android.App.Application.Context;
    return Settings.Secure.GetString(appContext.ContentResolver, Settings.Secure.AndroidId);
}

其他可选标识(不推荐优先使用)

  • 设备序列号(Build.Serial):Android 8.0及以后需要READ_PHONE_STATE权限,部分OEM设备可能未设置序列号,会返回"unknown",稳定性不如Android ID。
  • IMEI/MEID:仅适用于带蜂窝模块的设备(平板等无SIM卡设备无法获取),Android 10及以后非系统应用已禁止获取,且需要敏感权限,不推荐用于你的场景。

业务实现建议

  1. 绑定设备与账户:用户首次登录时,将获取到的Android ID(建议哈希后存储)与用户账户关联,保存到后端数据库的"已知设备列表"中。
  2. 登录校验逻辑:后续用户登录时,获取当前设备的Android ID,与后端该账户的已知设备列表对比:
    • 若存在:正常登录;
    • 若不存在:触发邮件告警,同时可让用户选择是否将该设备加入已知列表。
  3. 辅助信息补充:告警邮件中可附带设备的基础信息,帮助用户快速识别设备,获取代码:
    • 设备型号:Android.OS.Build.Model
    • 系统版本:Android.OS.Build.VERSION.Release
  4. 特殊情况处理:告知用户,若设备恢复出厂设置或刷机,Android ID会变更,此时登录会被识别为新设备,需用户手动确认。

内容的提问来源于stack exchange,提问作者KLeo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 17:40:31