我想在我的spalsh屏幕上显示位于android清单中的versionName(数字)。我找到了一些示例代码,但它们无法正常工作。这似乎是一个简单的任务,但它不会显示给我
来自splash xml的文本视图:
<TextView
android:id="@+id/ver_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="33dp"
android:layout_marginRight="30dp"
android:text=" " />
显示方法:
private void displayVersionName() {
String versionName = "";
PackageInfo packageInfo;
try {
packageInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
versionName = "ver:" + packageInfo.versionName;
} catch (NameNotFoundException e) {
e.printStackTrace();
}
TextView tv = (TextView) findViewById(R.id.ver_name);
tv.setText(versionName);
}
答案 0 :(得分:7)
也许NameNotFoundException
会被抛出?或者在显示版本字符串时可能会发生某些事情?
无论如何,我和你完全一样,它对我有用。您可以使用以下代码验证getVersionInfo返回的内容,然后尝试显示它
public String getVersionInfo() {
String strVersion = "Version:";
PackageInfo packageInfo;
try {
packageInfo = getApplicationContext()
.getPackageManager()
.getPackageInfo(
getApplicationContext().getPackageName(),
0
);
strVersion += packageInfo.versionName;
} catch (NameNotFoundException e) {
strVersion += "Unknown";
}
return strVersion;
}
答案 1 :(得分:0)
更改您的代码,以便使用代码
获取您的应用程序版本名称 private void displayVersionName() {
String verName = "";
try {
verName = "ver:" + Current_Activity.this.getPackageManager().
"YOUR_APPLICATION_PACKAGE_NAME", 0).versionName;
} catch (NameNotFoundException e) {
e.printStackTrace();
}
TextView tv = (TextView) findViewById(R.id.ver_name);
tv.setText(verName);
}
答案 2 :(得分:0)
试试这个:
TextView tv = (TextView) findViewById(R.id.ver_name);
tv.setText("version : " + BuildConfig.VERSION_NAME);
然后导入要包含versionName的包的BuildConfig
:
import com.yourpackage.BuildConfig;