C/C++プログラマの管理者が, Androidプログラムにチャレンジ. AndroidプログラミングのTipsをメモっていく予定です.

アクティビティマネージャ(ActivityManager)クラスを利用することで, 起動中のアプリケーションの一覧を取得することができる.



起動中のアプリ一覧を取得

  • AppProcess.java
    • getSystemServiceメソッドで, ActivityManagerのインスタンスを取得する.
    • ActivityManager#getRunningAppProcessesメソッドで, 起動中のアプリのプロセス情報(RunningAppProcessInfo)を取得する.
    • getPackageManagerメソッドで, PackageManagerのインスタンスを取得する.
    • PackageManager#getApplicationInfoメソッドで, アプリのプロセス情報からアプリ情報(ApplicationInfo)を取得する.
    • PackageManager#getApplicationLabelメソッドで, アプリ情報からアプリ名を取得し, リストに追加する.
package com.moonlight_aska.android.appprocess;

import java.util.ArrayList;
import java.util.List;

import android.app.ActivityManager;
import android.app.ListActivity;
import android.app.ActivityManager.RunningAppProcessInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Bundle;
import android.widget.ArrayAdapter;

public class AppProcess extends ListActivity {
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ArrayList<String> appList = new ArrayList<String>();
    ActivityManager activityManager = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
    // 起動中のアプリ情報を取得
    List<RunningAppProcessInfo> runningApp = activityManager.getRunningAppProcesses();
    PackageManager packageManager = getPackageManager();
    if(runningApp != null) {
      for(RunningAppProcessInfo app : runningApp) {
        try {
          // アプリ名をリストに追加
          ApplicationInfo appInfo = packageManager.getApplicationInfo(app.processName, 0);
          appList.add( (String)packageManager.getApplicationLabel(appInfo));
        }
        catch(NameNotFoundException e) {
          e.printStackTrace();
        }
      }
    }
    // リスト表示
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, appList);
    setListAdapter(adapter);
  }
}



コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu


逆引き(基礎編)

画面表示/操作(49)

フラグメント(1)

逆引き(応用編)

Firebase(2)

AD



管理人/副管理人のみ編集できます