获取在屏幕上打开的当前应用程序的包名称?不在棒棒糖工作?

时间:2015-08-05 09:11:50

标签: android android-intent android-activity android-keypad

我正在使用自定义键盘,键盘打开时我需要当前的包名称。这个键盘将打开不同的应用程序,所以我需要当前打开的应用程序包名称。 我正在使用以下代码,但它无法正常工作。

  ActivityManager am = (ActivityManager) this
            .getSystemService(Activity.ACTIVITY_SERVICE);
    String packageName = am.getRunningTasks(1).get(0).topActivity
            .getPackageName();

2 个答案:

答案 0 :(得分:2)

我知道这太晚了但是上面的答案没有用,我找到了正确的答案,所以我写了这个,

ActivityManager mActivityManager = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE);
if(Build.VERSION.SDK_INT > 20){
     String mPackageName = mActivityManager.getRunningAppProcesses().get(0).processName;
}
else{ 
     String mPackageName = mActivityManager.getRunningTasks(1).get(0).topActivity.getPackageName();
}

答案 1 :(得分:1)

 ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
 List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1);
 Log.d("topActivity", "CURRENT Activity ::" + taskInfo.get(0).topActivity.getClassName());
 ComponentName componentInfo = taskInfo.get(0).topActivity;
 String packageName = componentInfo.getPackageName();

您的清单上需要以下权限:

<uses-permission android:name="android.permission.GET_TASKS"/>