Android端末にインストールされているアプリ一覧の取得

Androidの端末にインストールされているアプリ一覧を取得するサンプルプログラムです。
ポイントはこの2点。

  • 探したいアプリの条件をIntentに設定する
  • PackageManagerで条件(Intent)にあうアプリの一覧を取得
import java.util.List;

import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.os.Bundle;
import android.util.Log;

public class SampleAppList extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        //検索するアプリの条件をIntentで指定する
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_LAUNCHER);
        
        //PackageManagerを使ってアプリの情報を取得
        PackageManager pm = this.getPackageManager();
        List<ResolveInfo> list = pm.queryIntentActivities(intent, 0);
        
        String appName;
        String packageName;
        String className;
        for(ResolveInfo item : list){
            //アプリの名前、パッケージ名、クラス名(Activity名)を取得する
            appName        = item.loadLabel(pm).toString();
            packageName = item.activityInfo.packageName;
            className      = item.activityInfo.name;
            Log.d("debug", appName + " : " + packageName + " : " + className);
        }
    }
}

IntentとListViewを使えば、アプリ一覧からアプリを起動できるようにできますね。
ということで次回はListViewの簡単な使い方について書こうと思います。




参考
PackageManager | Android Developers
ResolveInfo | Android Developers