本项目抹平了各大Android手机厂商获取OAID(开放匿名设备标识)的差异性,轻松通过几句代码即可获取不同手机的OAID,类似于移动安全联盟官网提供的统一SDK闭源方案(miit_mdid_xxx.aar)。
allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}
dependencies {
// 如果项目中已经使用了移动安全联盟的包 mdid_xxx.aar ,则可能需要取消相关有冲突的依赖项
//implementation 'com.github.gzu-liyujiang.Android_CN_OAID:OAID_ASUS:版本号'
//implementation 'com.github.gzu-liyujiang.Android_CN_OAID:OAID_BUN:版本号'
implementation 'com.github.gzu-liyujiang.Android_CN_OAID:OAID_HEYTAP:版本号'
//implementation 'com.github.gzu-liyujiang.Android_CN_OAID:OAID_SAMSUNG:版本号'
implementation 'com.github.gzu-liyujiang.Android_CN_OAID:OAID_UODIS:版本号'
implementation 'com.github.gzu-liyujiang.Android_CN_OAID:OAID_ZUI:版本号'
implementation 'com.github.gzu-liyujiang.Android_CN_OAID:OAID_IMPL:版本号'
}
IDeviceId deviceId = DeviceID.with(context);
if (!deviceId.supportOAID()) {
// 不支持OAID,须自行生成全局唯一标识(GUID)。
// 本库不提供GUID的生成方式,可以使用`UUID.randomUUID().toString()`生成,
// 然后存到`SharedPreferences`及`ExternalStorage`甚至`CloudStorage`。
return;
}
deviceId.doGet(new IOAIDGetter() {
@Override
public void onOAIDGetComplete(@NonNull String oaid) {
// 不同厂商的OAID格式是不一样的,可进行MD5、SHA1之类的哈希运算统一
}
@Override
public void onOAIDGetError(@NonNull Exception exception) {
// 获取OAID失败
}
});
本库自带consumer-rules.pro
混淆规则,不混淆厂商的相关接口及类。若通过远程依赖的方式应用,则无需进行额外配置:
-keep class com.asus.msa.SupplementaryDID.** { *; }
-keep interface com.asus.msa.SupplementaryDID.** { *; }
-keep class com.bun.lib.** { *; }
-keep interface com.bun.lib.** { *; }
-keep class com.heytap.openid.** { *; }
-keep interface com.heytap.openid.** { *; }
-keep class com.samsung.android.deviceidservice.** { *; }
-keep interface com.samsung.android.deviceidservice.** { *; }
-keep class com.uodis.opendevice.aidl.** { *; }
-keep interface com.uodis.opendevice.aidl.** { *; }
-keep class com.zui.deviceidservice.** { *; }
-keep interface com.zui.deviceidservice.** { *; }
厂商 | 版本 |
---|---|
小米 | MIUI10.2 及以上 |
vivo | FuntouchOS 9 及以上 |
华为 | 全版本 |
OPPO | Color OS 7.0 及以上 |
Lenovo | ZUI 11.4 及以上 |
华硕 | Android 10 版本 |
魅族 | Android 10 版本 |
三星 | Android 10 版本 |
努比亚 | Android 10 版本 |
中兴 | Android 10 版本 |
一加 | Android 10 版本 |
Freeme OS | Android 10 版本 |
SSUI OS | Android 10 版本 |
OAID 即 Open Anonymous Device Identifier,开放匿名设备标识符,根据移动安全联盟公布在网上的《移动智能终端补充设备标识规范》“旨在规范移动智能终端补充设备标识体系的体系架构、功能要求、接口要求以及安全要求。 规范设备生产企业遵循标准要求开发统一接口调用方式,方便移动应用接入、减小维护成本”。因此该联盟及联盟单位必须将统一的 OAID 调用方式公布出来,这也是“中华人民共和国标准化法”的法律要求。事实上,除非是企业内部标准,其他标准都必须公开。
根据“标准法”的第二十二条: 制定标准应当有利于科学合理利用资源,推广科学技术成果,增强产品的安全性、通用性、可替换性,提高经济效益、社会效益、生态效益,做到技术上先进、经济上合理。 禁止利用标准实施妨碍商品、服务自由流通等排除、限制市场竞争的行为。
使用标识符的最佳做法,参阅谷歌官方文档:https://developer.android.google.cn/training/articles/user-data-ids 。在使用 Android 标识符时,请遵循以下最佳做法:
Copyright (c) 2019-2021 gzu-liyujiang <1032694760@qq.com>
The software is licensed under the Mulan PSL v1.
You can use this software according to the terms and conditions of the Mulan PSL v1.
You may obtain a copy of Mulan PSL v1 at:
http://license.coscl.org.cn/MulanPSL
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
PURPOSE.
See the Mulan PSL v1 for more details.
Sign in for post a comment
Activity
Community
Health
Trend
Influence
:Code submit frequency
:React/respond to issue & PR etc.
:Well-balanced team members and collaboration
:Recent popularity of project
:Star counts, download counts etc.
Comments ( 1 )