2013-10-29 177 views
0

可能只有正在运行的应用程序的名称而不是程序包名称?我现在有这样的代码:正在运行的应用程序名称而不是程序包名称

ActivityManager am = (ActivityManager) getSystemService(Activity.ACTIVITY_SERVICE); 
     List<RunningAppProcessInfo> processes = am.getRunningAppProcesses(); 

     if (processes != null){ 
      for (int i=0; i<processes.size(); i++){ 
       RunningAppProcessInfo temp = processes.get(i); 
       String pName = temp.processName; 
       Log.d("Running process: ", pName); 
      } 
     } 

但它返回的包名称如:com.android.camera。我只需要camera或例如Nova launcher

+1

检查此[SO](http://stackoverflow.com/questions/3861073/get-active-application-name-in-android) –

+0

解决谢谢你! –

回答

1

试试这个:

final PackageManager pm = getApplicationContext().getPackageManager(); 
ApplicationInfo ai; 
try { 
    ai = pm.getApplicationInfo(this.getPackageName(), 0); 
} 
    catch (final NameNotFoundException e) { 
    ai = null; 
} 
final String applicationName = (String) (ai != null ? pm.getApplicationLabel(ai) : "(unknown)"); 

在其清单的标签来定义这将返回应用程序的名称。

相关问题