Прийняті відповіді спрацюють, якщо ви протестуєте лише на Емуляторі або на кількох пристроях, але якщо ви тестуєте на безлічі пристроїв, можливо, вам знадобляться певні засоби, щоб додати ідентифікатор пристрою працюючого пристрою.
Наступний код перетворить поточний працюючий пристрій в тестовий пристрій для перегляду програм
...
if(YourApplication.debugEnabled(this)) //debug flag from somewhere that you set
{
String android_id = Settings.Secure.getString(this.getContentResolver(), Settings.Secure.ANDROID_ID);
String deviceId = md5(android_id).toUpperCase();
mAdRequest.addTestDevice(deviceId);
boolean isTestDevice = mAdRequest.isTestDevice(this);
Log.v(TAG, "is Admob Test Device ? "+deviceId+" "+isTestDevice); //to confirm it worked
}
Вам потрібно використовувати md5 Android ID, і він повинен мати верхній регістр. Ось код md5, який я використав
public static final String md5(final String s) {
try {
// Create MD5 Hash
MessageDigest digest = java.security.MessageDigest
.getInstance("MD5");
digest.update(s.getBytes());
byte messageDigest[] = digest.digest();
// Create Hex String
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < messageDigest.length; i++) {
String h = Integer.toHexString(0xFF & messageDigest[i]);
while (h.length() < 2)
h = "0" + h;
hexString.append(h);
}
return hexString.toString();
} catch (NoSuchAlgorithmException e) {
Logger.logStackTrace(TAG,e);
}
return "";
}
EDIT: Мабуть, метод MD5 не ідеальний, і було запропоновано спробувати https://stackoverflow.com/a/21333739/2662474 Мені ця функція більше не потрібна, тому я не перевіряв. Удачі!