从 Android 应用中的 gradle 访问 buildConfigField
Access buildConfigField from gradle in Android app
我正在 Android Studio 中构建一个多应用项目,并使用 Gradle 进行版本控制。
我用
versionName "1.0"
versionCode 2
versionNameSuffix = ".alpha1"
我也用
def getDate() {
new Date().format('yyyyMMddHHmmss')
}
和
buildConfigField 'String', 'BUILD_DATE', '\"' + getDate() + '\"'
一切正常。
我可以使用
通过代码访问这些内容
String vN = BuildConfig.versionName;
int vC = BuildConfig.versionCode;
String bD = BuildConfig.BUILD_DATE;
我遇到的一个问题是我有时需要从另一个应用程序访问此信息。
我可以通过
获取版本名称和版本代码
PackageInfo pi = this.getPackageManager().getPackageInfo(packageName, 0);
String vN = pi.versionName;
int vC = pi.versionCode;
有什么方法可以从另一个应用访问 BUILD_DATE 吗?
不容易。
最简单的方法是从 buildConfigField
切换到 resValue
,或者在 buildConfigField
和 resValue
中放置相同的 getDate()
值]. resValue
将允许您使用日期定义字符串资源。然后,需要该值的应用程序可以使用 getPackageManager().getResourcesForApplication()
获取一个 Resources
对象,从中可以读取字符串资源值。
如果您的其余代码可以使用字符串资源,您只需从 buildConfigField
切换到 resValue
。如果这样做不方便,那么在 BuildConfig
和字符串资源中同时包含构建日期会产生少量数据重复,但恕我直言,这不是大问题。
我正在 Android Studio 中构建一个多应用项目,并使用 Gradle 进行版本控制。
我用
versionName "1.0"
versionCode 2
versionNameSuffix = ".alpha1"
我也用
def getDate() {
new Date().format('yyyyMMddHHmmss')
}
和
buildConfigField 'String', 'BUILD_DATE', '\"' + getDate() + '\"'
一切正常。
我可以使用
通过代码访问这些内容String vN = BuildConfig.versionName;
int vC = BuildConfig.versionCode;
String bD = BuildConfig.BUILD_DATE;
我遇到的一个问题是我有时需要从另一个应用程序访问此信息。
我可以通过
获取版本名称和版本代码PackageInfo pi = this.getPackageManager().getPackageInfo(packageName, 0);
String vN = pi.versionName;
int vC = pi.versionCode;
有什么方法可以从另一个应用访问 BUILD_DATE 吗?
不容易。
最简单的方法是从 buildConfigField
切换到 resValue
,或者在 buildConfigField
和 resValue
中放置相同的 getDate()
值]. resValue
将允许您使用日期定义字符串资源。然后,需要该值的应用程序可以使用 getPackageManager().getResourcesForApplication()
获取一个 Resources
对象,从中可以读取字符串资源值。
如果您的其余代码可以使用字符串资源,您只需从 buildConfigField
切换到 resValue
。如果这样做不方便,那么在 BuildConfig
和字符串资源中同时包含构建日期会产生少量数据重复,但恕我直言,这不是大问题。