我如何从AndroidManifest.xml文件下载后,不安装它,以编程方式获得我的apk的版本代码或版本名。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="xxx.xx.xxx"
    android:versionCode="1"
    android:versionName="1.1" >

例如,我想检查我的IIS服务上是否上传了新版本,在设备上安装后,如果不是新版本,我就不想安装它。


当前回答

将.apk文件拖到Android Studio中 然后双击AndroidManifest.xml文件。 请参见版本代码和版本名称

其他回答

如果你使用的是安卓Studio 2.2及以上版本,那么在安卓Studio中使用Build→Analyze APK,然后选择AndroidManifest.xml文件。

final PackageManager pm = getPackageManager();
String apkName = "example.apk";
String fullPath = Environment.getExternalStorageDirectory() + "/" + apkName;        
PackageInfo info = pm.getPackageArchiveInfo(fullPath, 0);
Toast.makeText(this, "VersionCode : " + info.versionCode + ", VersionName : " + info.versionName , Toast.LENGTH_LONG).show();

将.apk文件拖到Android Studio中 然后双击AndroidManifest.xml文件。 请参见版本代码和版本名称

    EditText ET1 = (EditText) findViewById(R.id.editText1);

    PackageInfo pinfo;
    try {
        pinfo = getPackageManager().getPackageInfo(getPackageName(), 0);
        String versionName = pinfo.versionName;
        ET1.setText(versionName);
        //ET2.setText(versionNumber);
    } catch (NameNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

使用apkanalyzer现在是cmdline-tools的一部分:

$ apkanalyzer manifest version-code my_app.apk
1
$ apkanalyzer manifest version-name my_app.apk
1.2.3.4