मेरे पास कुछ उपकरण हैं जिन पर मैं परीक्षण कर रहा था, और प्रत्येक के लिए डिवाइसिड को मैन्युअल रूप से प्राप्त नहीं करना चाहता था। प्रोग्राम को व्यावहारिक रूप से प्राप्त करने के लिए यहां दिए गए उत्तर डिवाइसआईडी मेरे लिए काम नहीं कर रहे थे (मिसिंग जीरो), जिसके कारण परीक्षण विज्ञापनों के बजाय वास्तविक विज्ञापन दिखाए गए थे।
मैंने इसे अपने एप्लिकेशन क्लास ऑनक्रिएट में डाल दिया, और फिर एक गेटर पद्धति का उपयोग करके डिवाइस को उजागर किया ताकि इसे पूरे एक्सेस किया जा सके।
@Override
public void onCreate() {
super.onCreate();
String androidId = Settings.Secure.getString(this.getContentResolver(), Settings.Secure.ANDROID_ID);
deviceId = MD5(androidId).toUpperCase();
}
public static String getDeviceId() {
return deviceId;
}
private static String deviceId;
और एमडी 5 विधि;
public String MD5(String md5) {
try {
java.security.MessageDigest md = java.security.MessageDigest.getInstance("MD5");
byte[] array = md.digest(md5.getBytes());
StringBuffer sb = new StringBuffer();
for (int i = 0; i < array.length; ++i) {
sb.append(Integer.toHexString((array[i] & 0xFF) | 0x100).substring(1,3));
}
return sb.toString();
} catch (java.security.NoSuchAlgorithmException e) {
}
return null;
}
फिर जब भी मैं एक AdRequest ऑब्जेक्ट बनाता हूं, तो इसका उपयोग करना:
if(BuildConfig.DEBUG) {
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice(Application.getDeviceId())
.build();
adView.loadAd(adRequest);
} else {
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.build();
adView.loadAd(adRequest);
}