当用户打开设备时,获取设备上任何Android应用程序的包名称

时间:2017-01-25 03:37:18

标签: android service package

我想在应用程序打开时获取应用程序的包名称。每当有任何应用程序被打开时,我想实现类似applock应用程序,它被applock锁定,想要显示锁定屏幕。

我尝试了一些解决方案但没有运气。 我在下面的服务中调用但没有获取包名称

class ForegroundCheckTask extends AsyncTask<Context, Void, Boolean> {

    @Override
    protected Boolean doInBackground(Context... params) {
        final Context context = params[0].getApplicationContext();
        return isAppOnForeground(context);
    }

    private boolean isAppOnForeground(Context context) {
        ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        List<ActivityManager.RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
        if (appProcesses == null) {
            return false;
        }
        final String packageName = context.getPackageName();
        for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) {

                Log.e(TAG, "Process Name : " + appProcess.processName);

                return true;

        }
        return false;
    }
}

1 个答案:

答案 0 :(得分:0)

您可以通过调用this.getClass().getPackage()来获取当前课程的包。

该方法的文档位于类文档中:https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html