package com.duoyou.api.oaid.impl; import android.content.Context; import com.duoyou.api.oaid.IGetter; import com.duoyou.api.oaid.IOAID; import com.duoyou.api.oaid.OAIDException; import com.duoyou.api.oaid.OAIDLog; public class XiaomiImpl implements IOAID { private final Context context; private Class<?> idProviderClass; private Object idProviderImpl; public XiaomiImpl(Context context2) { this.context = context2; try { Class<?> cls = Class.forName("com.android.id.impl.IdProviderImpl"); this.idProviderClass = cls; this.idProviderImpl = cls.newInstance(); } catch (Exception e) { OAIDLog.print(e); } } private String getOAID() { return (String) this.idProviderClass.getMethod("getOAID", Context.class).invoke(this.idProviderImpl, this.context); } @Override // com.duoyou.api.oaid.IOAID public void doGet(IGetter iGetter) { if (this.context != null && iGetter != null) { if (this.idProviderClass == null || this.idProviderImpl == null) { iGetter.onOAIDGetError(new OAIDException("Xiaomi IdProvider not exists")); return; } try { String oaid = getOAID(); if (oaid == null || oaid.length() == 0) { throw new OAIDException("OAID query failed"); } OAIDLog.print("OAID query success: " + oaid); iGetter.onOAIDGetComplete(oaid); } catch (Exception e) { OAIDLog.print(e); iGetter.onOAIDGetError(e); } } } @Override // com.duoyou.api.oaid.IOAID public boolean supported() { return this.idProviderImpl != null; } }