2011-11-12 6 views
1

シェルのtopコマンドを使用して見つかったアプリケーションに関する情報を探しています。私が持っているのはプロセス名(パッケージ名を含む)です。アイコンとアプリ名は完璧です。私はGoogleを介して適切なsoultionを見つけることができません。 )Androidのアプリケーション情報(プロセス名に基づいて)

私が現在のプロセッサーの使用状況を示すために見つけた唯一の方法であるので、私はtopを使用します。誰かがもっとAPIに優しいソウルティションに精通しているなら、私は感謝しています。あなたは、コードの下に試すことができますデスクトップの時計用

  • com.android.deskclock
  • com.creativemobile.DragRacingゲームドラッグレース

答えて

4

詳細はこちら。パッケージ名があるので、それを使って対応するアプリケーション名、バージョン、アイコンを取得できます。

List<PackageInfo> packagess = getPackageManager().getInstalledPackages(0); 
for(int i=0;i<packagess.size();i++) { 
    PackageInfo pack = packagess.get(i); 
    if ((!getSysPackages) && (pack.versionName == null)) { 
     continue ; 
    } 

    //this is the application name 
    pack.applicationInfo.loadLabel(getPackageManager()).toString(); 

    //this is the package name 
    pack.packageName; 

    //this is the version name 
    pack.versionName; 

    //this is the version code 
    pack.versionCode; 

    //this is the application icon 
    pack.applicationInfo.loadIcon(getPackageManager()); 
} 
+0

あなたが正しくあなたを理解しているかどうかを確認するには、インストールされたパッケージをループして、 'top'コマンドから得たパッケージを探します。おいしかった、午後、仕事後にチェックするよ) – Moyshe

+0

@Moyshe yeah。あなたはHashMapなどで保存することができます。 –

+0

それは働いた!どうもありがとうございました!エールクレジットはあなたに属しています;) – Moyshe

0

のために:

私が取得例プロセス名がある

private String getTopActivity() { 

     ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); 
     List<ActivityManager.RunningTaskInfo> RunningTask = mActivityManager.getRunningTasks(1); 
     ActivityManager.RunningTaskInfo ar = RunningTask.get(30); 
     return ar.topActivity.getClassName().toString(); 
    } 

ますAndroidManifesでタスクを取得する許可を与えなければならないt.xml

+0

これは私の2番目の質問に対する答えですよね?これは、アプリ名の代わりにクラス名を与えるためです。残念ながら、私はそれも私のproc名と同じように役に立たないことがわかります。さらに、それが私の2番目の質問に対する答えであれば、どこかでプロセッサの統計情報を入手できますか?あるいは、私はここで何かを逃しているかもしれない?多分私はあなたの意見を理解していませんでしたか? – Moyshe

関連する問題