6

2 つのライブラリ プロジェクトが含まれる Eclipse プロジェクトがあります。これらのプロジェクトには、バージョン情報を含む独自のマニフェスト ファイルがあります。ここで、メイン プロジェクト内のこれらのライブラリ プロジェクトからバージョン番号を読み取りたいと考えています。PackageManager を呼び出して情報を読み取ることはできません。

//Get the version name from the included library project
String libVersion  = getPackageManager().getPackageInfo("com.google.zxing.client.android", 0).versionName;

ライブラリはインストールされたアプリケーションではないためです。しかし、これらの情報を取得する正しい方法は何ですか?

例: zxing Android プロジェクトをライブラリ プロジェクトとして含めました。これらのプロジェクトのマニフェスト ファイルには、次のバージョン情報があります。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.google.zxing.client.android"
    android:installLocation="auto"
    android:versionCode="88"
    android:versionName="4.3.2" >

versionCode と versionName を読みたいです。上記のコーディングのように packageManager を使用すると、versionCode "93" と versionName "4.5" が得られます。

4

1 に答える 1

1

実際、現在可能です (API 17 (呼び出しプロジェクト)、API 14 (ライブラリ プロジェクト) でテストされた新しい API の変更による可能性があります): 正しいパッケージ名を具体的に呼び出すと、そのパッケージのマニフェスト ファイルからバージョン情報が取得されます。

例えば:

String versionName = getPackageManager().
        getPackageInfo("PACKAGE_FROM_WHICH_TO_RETRIEVE_MANIFEST", 0).versionName;
于 2015-04-17T11:52:32.113 に答える