一、背景

在Android程序中,有时候我们APP需要获取唯一识别码,来区别用户。在Android系统中提供了了AndroidId,但AndroidId有时候会为null,同时root手机用户,androidid可以改变。所以AndroidId并不能作为唯一识别码。

对于Google推荐使用Google Advertising ID,通过Google Service可以获取Google Advertising ID(如果没有Google Service就回去不到Google Advertising ID)。

二、代码实现

/*** 这个方法是耗时的,不能在主线程调用*/
public static String getGoogleAdId(Context context) throws Exception {if (Looper.getMainLooper() == Looper.myLooper()) {return "Cannot call in the main thread, You must call in the other thread";}AdvertisingIdClient.Info idInfo = null;try {idInfo = AdvertisingIdClient.getAdvertisingIdInfo(ctx);} catch (IOException e) {e.printStackTrace();} catch (GooglePlayServicesNotAvailableException e) {e.printStackTrace();} catch (GooglePlayServicesRepairableException e) {e.printStackTrace();}String adid = null;try {if (idInfo != null) {adid = idInfo.getId();}} catch (NullPointerException e) {e.printStackTrace();}return adid;
}

获取Google Advertising ID作为唯一识别码相关推荐

  1. 获取Google Advertising ID 和 Android ID

    获取GoogleID(GAID): 获取Google Advertising ID作为唯一识别码 获取AndroidID: String ANDROID_ID = Settings.System.ge ...

  2. c#获取机器唯一识别码

    c#获取机器唯一识别码 前言 在客户端认证的过程中,我们总要获取客户机的唯一识别信息,曾经以为MAC地址是不会变的,但是现在各种改,特别是使用无线上网卡,MAC地址插一次变一次,所以这样使用MAC就没 ...

  3. js获取唯一设备码_HTML5+下用js获取设备的唯一识别码和本地数据库的操作

    HTML5+下用js获取设备的唯一识别码和本地数据库的操作 发布时间:2018-04-24 12:01, 浏览次数:1111 , 标签: HTML js 首先获取设备的唯一标识,由于ios审核的阻挡, ...

  4. HTML5+下用js获取设备的唯一识别码和本地数据库的操作

    首先获取设备的唯一标识,由于ios审核的阻挡,我现在只是获取它idfa来作为唯一识别码(这个会被重置,如果idfa不重要的话是可以考虑此方法的),Android就不用多说了 if(ua.match(/ ...

  5. Java:物联网终端机如何生成唯一识别码

    1.前言   最直接的思路是用CPU的序列号和主板编号来做,但是当你使用:sudo dmidecode -s baseboard-serial-number来获取主板编号时,大部分情况下会给你返回: ...

  6. Android之如何获取Android设备的唯一识别码笔记

    因为需要在项目中需要获得一个稳定.可靠的设备唯一识别码,因此搜了一些网上的资料.今天我们将介绍几种方式. 1. DEVICE_ID 假设我们确实需要用到真实设备的标识,可能就需要用到DEVICE_ID ...

  7. unity3d 获取 Advertising ID

    unity3d 获取Advertising ID 废话不多直接上代码 public static string GetAdvertisingID(){string _strAdvertisingID ...

  8. Android设备唯一识别码的获取

    应用设备唯一识别码的解决方案 唯一标识必须满足两个特性才能完美解决定位唯一设备的问题,但这个问题的解决却注定只能极限接近完美 唯一性:标识必须在所有使用该应用的设备上保持唯一性 不变性:标识必须在同一 ...

  9. 通用唯一识别码(uuid):吃透id随便搞

    Index v4 高64位 mostSigBits 低64位 leastSigBits v3 高64位 mostSigBits 低64位 leastSigBits v1 高64位 mostSigBit ...

最新文章

  1. 谷歌和伯克利分校的新工作:规模化大场景的神经绘制方法Block-NeRF
  2. pip install 时报错 ERROR: Could not install packages due to an EnvironmentError: [WinError 5]
  3. 5G都不能取代的Wi-Fi6,到底有多厉害?
  4. 【Python】Python语言学习:pip工具使用知识,模型保存pickle,PDF与docx相互转换处理...
  5. SSM整合框架实现发送邮件功能
  6. 常见Java开发过程中遇到的问题及其解决办法
  7. Python+pickle读写二进制文件小案例
  8. OpenCV 文字绘制——cv::putText详解
  9. 视频垂直翻转并添加马赛克的步骤
  10. 本来共享的计算机突然无法访问,WIN7局域网无法启用共享访问解决办法
  11. 除了“带地球去流浪”,还有哪些脑洞大开的太空计划?
  12. Android Studio更换项目界面主题背景
  13. 【刷爆LeetCode】五月算法集训(14)栈
  14. 调起APP功能的实现
  15. leetcode 179 最大数
  16. 括号配对检测python123_《括》字意思读音、组词解释及笔画数 - 新华字典 - 911查询...
  17. Android App内打开淘宝详情页
  18. HDU 4417 Super Mario(划分树问题求不大于k的数有多少)
  19. 计算几何入门 1.4:凸包的构造——Jarvis March算法
  20. 构筑自有流量池,电商宝SCRM(微信公众号和个人号管家)助力企业打赢粉丝争夺战...

热门文章

  1. 摘要-Amira用户指南
  2. ERROR: Cannot uninstall ‘PyYAML‘. It is a distutils installed project and thus we cannot...
  3. Swift REPL
  4. Flutter报错:Bad state: Stream has already been listened to.
  5. Android SDK接口封装自动化测试
  6. 弱口令总结(什么是弱口令)
  7. 基于音频指纹的听歌识曲系统
  8. luogu1359 租用游艇
  9. html盒子模型 正方形嵌套,前端box(盒子嵌套)
  10. python与SQL学习比较