设计模式学习笔记
设计模式系列学习视频
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
从API级别29开始,永久设备标识符受到附加限制的保护,建议应用程序使用可重置标识符(请参阅最佳实践中的唯一标识符)。如果已授予调用应用程序READ_PRIVILEGED_PHONE_STATE权限则可以调用此方法,这是特权权限,只能授予设备上预加载的应用程序。
如果调用应用程序不满足这些要求之一,则此方法将表现如下:
如果调用应用程序的目标SDK为API级别28或更低,并且该应用程序具有READ_PHONE_STATE权限,则返回null。
如果调用应用程序的目标SDK是API级别28或更低,并且该应用程序没有READ_PHONE_STATE权限,或者如果调用应用程序的目标是API级别29或更高,则抛出SecurityException。
这个方法在API26(Android8.0)中弃用,说明应该是在Android8.0开始就获取不到deviceId了,具体没有实验过。
=======================================================================
原文部分引用如下:
使用Android标识符时,请遵循以下最佳做法:
避免使用硬件标识符。在大多数情况下,您可以避免使用硬件标识符,例如SSAID(Android ID),而不会限制所需的功能。
Android 10(API级别29)为不可重置的标识符(包括IMEI和序列号)增加了限制。您的应用必须是设备或个人资料所有者应用,具有特殊的运营商权限或READ_PRIVILEGED_PHONE_STATE特权权限才能访问这些标识符。
<仅将广告ID用于用户配置文件或广告用例。使用广告ID时,请始终尊重用户对广告跟踪的选择。另外,请确保标识符不能与个人身份信息(PII)连接,并避免桥接广告ID重置。