We coded the program that get the version information on an android application.
アンドロイドアプリのバージョンに関する情報はマニフェストファイルの
android:versionCode属性
アプリケーションのバージョンを表す整数値であり、端末に表示されない情報です。
android:versionName属性
アプリケーションのバージョンを表す文字列であり、端末に表示される情報です。
Android Marketへ公開するためには上記の2つの属性は必ず指定しておかないといけないそうです。
プログラム
これらの情報をプログラムで取得するには、PackageInfoを利用すると良いようです。PackageInfoインスタンスはPackageManagerクラスのgetPackageInfoメソッドを利用することで得られます。そうして得られたPackageInfoインスタンスのフィールドversionCodeとversionNameに上記の値が格納されています。
PackageManagerインスタンスはActivityクラスのgetPackageManagerメソッドを利用することで得られます。また、getPackageInfoメソッドの引数にはパッケージ名(下記の例ではsgl.test.helloworld)と情報の種類を表すフラグを指定します。
ソースコード
/SGL/src/sgl/test/helloworld/HelloWorld.java
package sgl.test.helloworld;
import android.app.Activity;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Bundle;
import android.widget.TextView;
public class HelloWorld extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int versionCode = 0;
String versionName = "";
PackageManager packageManager = this.getPackageManager();
try {
PackageInfo packageInfo = packageManager.getPackageInfo(this.getPackageName(), PackageManager.GET_ACTIVITIES);
versionCode = packageInfo.versionCode;
versionName = packageInfo.versionName;
} catch (NameNotFoundException e) {
e.printStackTrace();
}
TextView textView = new TextView(this);
textView.setText("versionCode = " + versionCode + " : versionName = " + versionName);
setContentView(textView);
}
}
マニフェストファイル
/SGL/AndroidManifest.xml
実行結果

0 件のコメント:
コメントを投稿