我一直在努力从PackageInfo对象类型获取正在运行的应用程序的versionName.
我构建了一个Parcelable接口,其中包含与PackageInfo对象类型相关的所有字段.该接口方法的主要输入是Parcel对象.
我似乎无法弄清楚如何正确关联这些Parcelable,Parcel和PackageInfo对象.
那里有我可以查看的示例代码吗?似乎不应该那么困难,但似乎是在困扰我.
谢谢爵士乐
Cas*_*ash 42
示例代码:
try {
PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
return packageInfo.versionName;
} catch (NameNotFoundException e) {
//Handle exception
}
Run Code Online (Sandbox Code Playgroud)
现代方式:
如果您通过Gradle(使用Android Studio)构建Android项目,则有获得版本的最佳快捷方式:
com.yourproject.BuildConfig.VERSION_NAME
Run Code Online (Sandbox Code Playgroud)
它链接到versionName您的build.gradle文件中.
实际上,您可以build.gradle通过这种方式从文件中获取应用程序ID和更多信息.
我使用以下代码来获取清单中使用的版本.我写了一个小函数来封装和隐藏这个有点大的块来获得一个int.
private int getVersion() {
int version = -1;
try {
PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_META_DATA);
version = pInfo.versionCode;
} catch (NameNotFoundException e1) {
Log.e(this.getClass().getSimpleName(), "Name not found", e1);
}
return version;
}
Run Code Online (Sandbox Code Playgroud)
这将返回选择的int以识别您在市场中的版本(VersionCode).不是VersionName.要了解如何更改代码,请查看Casebash中的代码.
PackageInfo是versionName公共数据成员。您不需要执行任何特殊操作即可获取“来自 PackageInfo 对象类型的正在运行的应用程序的版本名称”。如果您有一个PackageInfo名为 的对象info,则可以versionName通过访问info.versionName。
| 归档时间: |
|
| 查看次数: |
26486 次 |
| 最近记录: |