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