0

i am trying to get Currently open application package name and i got in kitkat but it will not work in android lollipop, it will every time return the my install application package name i don't know why this happening, code

private void getAppInfoLowerLolipop(Context aContext) {
    ActivityManager am = (ActivityManager) aContext
            .getSystemService(Context.ACTIVITY_SERVICE);
    List<ActivityManager.RunningTaskInfo> alltasks = am.getRunningTasks(1);

    for (ActivityManager.RunningTaskInfo aTask : alltasks) {
        System.out.println("==== Not Package Name : "
                + aTask.topActivity.getPackageName().toString());
    }
}

and for the android lollipop and marshmallow

private void getAppInfoForLolipop(Context context) {

    try {
        ActivityManager.RunningAppProcessInfo.class
                .getDeclaredField("processState");
        ActivityManager am = (ActivityManager) context
                .getSystemService(Context.ACTIVITY_SERVICE);
        List<ActivityManager.RunningAppProcessInfo> appList = am
                .getRunningAppProcesses();

        System.out.println("==== Lolipop Package Name : "
                + appList.get(0).processName.toString());
    } catch (Exception ignored) {
        System.out.println("==== Error Lolipop : " + ignored);
    }

}

And in manifest file i give permission to get recent task is

 <uses-permission android:name="android.permission.GET_TASKS" />
Gaurav Mandlik
  • 525
  • 1
  • 9
  • 42

0 Answers0