получить версию объявлений Google программно - PullRequest
0 голосов
/ 27 февраля 2019

Я использую последнюю версию Google Ads SDK AdMob (через Gradle)

implementation 'com.google.android.gms:play-services-ads:17.1.1'

, и я пытаюсь получить версию программно.В IOS версия извлекается через [GADRequest sdkVersion], но я не мог найти, как получить ее в Android

1 Ответ

0 голосов
/ 28 февраля 2019

Чтобы получить версию Google Ads SDK, простое решение - объявить версию в файле gralde, а затем напрямую использовать ее в коде.

build.gradle (Модуль: приложение)

// [Step 1] Declare Google Ads SDK version
ext.google_ads_sdk_version = '17.1.1'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.example.kotlinapp"
        minSdkVersion 15
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            // [Step 2] Add a new static variable named GOOGLE_ADS_SDK_VERSION 
            // in BuildConfig.java file for release build
            buildConfigField("String", "GOOGLE_ADS_SDK_VERSION", "$google_ads_sdk_version")
        }

        debug {
            // [Step 3] Add a new static variable named GOOGLE_ADS_SDK_VERSION 
            // in BuildConfig.java file for debug build
            buildConfigField("String", "GOOGLE_ADS_SDK_VERSION", "\"$google_ads_sdk_version\"")
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.android.support:appcompat-v7:28.0.0'

    // [Step 4] Add the version to google ads dependency
    implementation "com.google.android.gms:play-services-ads:$google_ads_sdk_version"
}

В коде Java

Log.i("TAG", BuildConfig.GOOGLE_ADS_SDK_VERSION);

Дополнительно: Другой способ заключается в использовании следующего метода, ограничение работает только в том случае, если Google Ads SDKверсия 15.0.0 или выше.

/**
 * Gets Ads SDK version
 *
 * @return The version or null if the version is not found for some reasons.
 */
public String getAdsSDKVersion() {
    InputStream input = null;

    try {
        input = getClass().getResourceAsStream("/play-services-ads.properties");

        Properties prop = new Properties();
        prop.load(input);

        return prop.getProperty("version");
    } catch (NullPointerException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (input != null) {
            try {
                input.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    return null;
}
...