আমার কয়েকটি ডিভাইস রয়েছে যা আমি পরীক্ষা করে দেখছি এবং প্রতিটিটির জন্য ম্যানুয়ালি ডিভাইসআইডি পেতে চাইনি। প্রোগ্রামিকভাবে ডিভাইসআইডিগুলি পেতে উত্তরগুলি আমার জন্য কাজ করছে না (অনুপস্থিত জিরো) যা পরীক্ষার বিজ্ঞাপনের পরিবর্তে প্রকৃত বিজ্ঞাপনগুলি দেখানো হয়েছিল।
আমি এটিকে আমার অ্যাপ্লিকেশন ক্লাসে অনক্রিটে রেখেছি এবং তারপরে ডিভাইসটি উন্মুক্ত করে একটি গেটর পদ্ধতি ব্যবহার করে যাতে এটি জুড়ে প্রবেশ করা যায়।
@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;
}
তারপরে যখনই আমি একটি অ্যাড্রোয়েস্ট অবজেক্ট তৈরি করি তখন এটি ব্যবহার করে:
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);
}