1

デバイスにホーム画面が表示されている場合でも、現在開いているアプリケーション名を取得する方法を教えてください。「ホーム画面が開いています」と表示されます。

4

6 に答える 6

10

どうぞ

ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
List l = am.getRecentTasks(1, ActivityManager.RECENT_WITH_EXCLUDED);
Iterator i = l.iterator();
PackageManager pm = this.getPackageManager();
while (i.hasNext()) {
    ActivityManager.RunningAppProcessInfo info = (ActivityManager.RunningAppProcessInfo)(i.next());
    try {
        CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(
        info.processName, PackageManager.GET_META_DATA));
        Log.w("LABEL", c.toString());
    } catch (Exception e) {
        // Name Not FOund Exception
    }
}
于 2012-06-20T11:50:56.987 に答える
1

以下のコードを使用して、実行中のタスクを一覧表示することもできます。

ActivityManager am = (ActivityManager) getApplicationContext().getSystemService(ACTIVITY_SERVICE);
List li = am.getRunningTasks(100);
Iterator i = li.iterator();
PackageManager pm = getApplicationContext().getPackageManager();
while (i.hasNext()) {
    try {
        ActivityManager.RunningTaskInfo info = (ActivityManager.RunningTaskInfo)(i.next());
        String ac = info.baseActivity.getPackageName();
        CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(
        ac, PackageManager.GET_META_DATA));
        Log.v("asd", c.toString());
    } catch (Exception e) {
        e.printStackTrace();
    }
}
于 2014-02-17T15:06:45.320 に答える
0

私にとって、上記の例はうまくいきませんでした。だから私はこれを使用することになった:

ActivityManager am = (ActivityManager) this
            .getSystemService(ACTIVITY_SERVICE);

    List<ActivityManager.RecentTaskInfo> l = am.getRecentTasks(1,
            ActivityManager.RECENT_WITH_EXCLUDED);
    Iterator<ActivityManager.RecentTaskInfo> i = l.iterator();

    PackageManager pm = this.getPackageManager();

    while (i.hasNext()) {
        try {
            Intent intent = i.next().baseIntent;
            List<ResolveInfo> list = pm.queryIntentActivities(intent,
                    PackageManager.MATCH_DEFAULT_ONLY);

            CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(
                    list.get(0).activityInfo.packageName,
                    PackageManager.GET_META_DATA));

            Toast.makeText(this, "Application name: " + c.toString(),
                    Toast.LENGTH_LONG).show();

        } catch (Exception e) {
            Toast.makeText(this,
                    "Application name not found: " + e.toString(),
                    Toast.LENGTH_LONG).show();
        }
    }
于 2014-06-18T12:04:39.817 に答える
-1

これにより、現在のアプリケーション名を取得できます

 Resources appR = getApplicationContext().getResources(); 
 CharSequence txt = appR.getText(appR.getIdentifier("app_name","string", getApplicationContext().getPackageName()));
 System.out.println(txt+"  APp Name");
于 2012-06-20T11:49:29.160 に答える
-1

このコードを使用するだけで

getActivity().getApplicationInfo().packageName

アプリケーション情報を提供し、パッケージ名を呼び出します。

于 2014-11-21T03:30:45.693 に答える