# OAID对接SDK指南 **Repository Path**: admobile/oaid-docking-case ## Basic Information - **Project Name**: OAID对接SDK指南 - **Description**: No description available - **Primary Language**: Android - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-04-04 - **Last Updated**: 2025-05-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Oaid获取及使用对接指南 ## 概述
使用前请将项目下的这两个依赖彻底移除
```java // OAID库1.0.25华为渠道请参考文档5.2 implementation(name: 'oaid_sdk_1.0.25', ext: 'aar') // OAID1.0.25版本适配器不支持其它版本,ADSuyi获取oaid使用 implementation 'cn.admobiletop.adsuyi.ad:oaid:1.0.25.08023' ``` 本案例针对Oaid2.1.0,如使用其它版本请调整安全库和版本。本案例中的com.example.oaidtest2.cert.pem密钥请误在正式项目中使用。
密钥有效期为一年,到期后请重新申请。 DeviceManager、OAIDHelper类可在案例中参考。 Oaid相关混淆请参考Oaid官方文档。OaidSdk与ADSuyiSdk的初始化没有先后关系,无需获取到Oaid后再初始化ADSuyiSdk。
## 1. OaidSdk的使用 assets目录加入supplierconfig.json和密钥[(密钥需到Oaid官网申请)](http://www.msa-alliance.cn/col.jsp?id=120); ### 1.1 密钥名配置于OAIDHelper类ASSET_FILE_NAME_CERT变量中; ```java public class OAIDHelper implements IIdentifierListener { ... public static final String ASSET_FILE_NAME_CERT = "com.example.oaidtest2.cert.pem"; ... } ``` ### 1.2 onSupport回调中,存储获取到的oaid、vaid、aaid ```java public class OAIDHelper implements IIdentifierListener { ... @Override public void onSupport(IdSupplier supplier) { ... String oaid = supplier.getOAID(); String vaid = supplier.getVAID(); String aaid = supplier.getAAID(); // 通过单例保存获取到的oaid、vaid、aaid DeviceManager.getInstance().setOaid(oaid); DeviceManager.getInstance().setVaid(vaid); DeviceManager.getInstance().setAaid(aaid); ... } ... } ``` ### 1.3 在适当位子初始化Oaid 案例中是在Application中初始化的,实际对接中请放到隐私协议同意之后 ```java public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); try { OAIDHelper oaidHelper = new OAIDHelper(); oaidHelper.init(this); } catch (Exception e) { e.printStackTrace(); } } } ``` ### 1.4 ADSuyiSdk获取Oaid ```java public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { ... // 初始化ADSuyi广告SDK ADSuyiSdk.getInstance().init(getApplicationContext(), new ADSuyiInitConfig.Builder() ... .setCustomDeviceInfoController(new CustomDeviceInfoController() { @Override public String getOaid() { /** * OAID初始化和本SDK初始化没有先后顺序关系。 * SDK每次需要Oaid的时候,都会调用此方法, * 只需要保证Oaid_SDK返回的字符串在DeviceManager单例对象中正常保存和获取即可 */ return DeviceManager.getInstance().getOaid(); } @Override public String getVaid() { return DeviceManager.getInstance().getVaid(); } }) ... .build()); ... } } ```