ページ

2011年4月5日火曜日

バージョン情報を取得する - Getting version information -

アンドロイドアプリに関するバージョン情報を取得するプログラムを作成しました。

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

    
        
            
                
                
            
        

    
    



実行結果


うまく利用すれば、Menuにバージョン情報を表示することができそうです。

0 件のコメント:

コメントを投稿