1

如何获取当前活动包名称?因为getRunningAppProcesses()不适用于Android 6.0。Android 6.0:获取当前活动的包名称

下面是我的代码:

grdPhoto.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @TargetApi(Build.VERSION_CODES.LOLLIPOP) 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

     //get package name of current running application. 
     ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); 
     packageName = mActivityManager.getRunningAppProcesses().get(1).processName; 

     Log.e("Package name:===========  ", "Package name  " + packageName); 

    } 
}); 
+0

http://stackoverflow.com/questions/13792653/how-to-use-getrunningappprocesses-in-android –

+0

检查这个答案http://stackoverflow.com/questions/28066231/how-to-gettopactivity -name-or-get-current-running-application-package-name-in-lo –

+0

感谢您的回复,但它不适用于android 6.0以获取当前运行的应用程序包名称。 –

回答

2

此代码是不必要的:

//get package name of current running application. 
ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); 
packageName = mActivityManager.getRunningAppProcesses().get(1).processName; 

试试这个:

grdPhoto.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     //get package name of current running application. 
     Log.e("Package name:===========  ", "Package name  " + getApplicationContext().getPackageName()); 
      } 
}); 

如果不工作,你知道有你ontemclicklistener问题,所以试试这个在您的onCreate方法或为日志显示证明getApplicationContext().getPackageName()将得到正确的应用程序包的名称。

Toast.makeText(this, getApplicationContext().getPackageName(),Toast.LENGTH_SHORT).show();