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 件のコメント:
コメントを投稿