I am creating a app lock application. How to get current running task in lollipop? getRunningTaskinfo
method is deprecated in lollipop API, then how to overcome this problem?
You can find an app's package name in the URL of your app's Google Play Store listing. For example, the URL of an app page is play.google.com/store/apps/details? id=com. example.
Title bar. The title bar displays both the name of the application and the name of the spreadsheet.
And choose Android Library, the default package name given in the module is always com.
String packageName = getPackageName();
try this:
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(); }
we can get using UsageStats:
public static String getTopAppName(Context context) { ActivityManager mActivityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); String strName = ""; try { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { strName = getLollipopFGAppPackageName(context); } else { strName = mActivityManager.getRunningTasks(1).get(0).topActivity.getClassName(); } } catch (Exception e) { e.printStackTrace(); } return strName; } private static String getLollipopFGAppPackageName(Context ctx) { try { UsageStatsManager usageStatsManager = (UsageStatsManager) ctx.getSystemService("usagestats"); long milliSecs = 60 * 1000; Date date = new Date(); List<UsageStats> queryUsageStats = usageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, date.getTime() - milliSecs, date.getTime()); if (queryUsageStats.size() > 0) { Log.i("LPU", "queryUsageStats size: " + queryUsageStats.size()); } long recentTime = 0; String recentPkg = ""; for (int i = 0; i < queryUsageStats.size(); i++) { UsageStats stats = queryUsageStats.get(i); if (i == 0 && !"org.pervacio.pvadiag".equals(stats.getPackageName())) { Log.i("LPU", "PackageName: " + stats.getPackageName() + " " + stats.getLastTimeStamp()); } if (stats.getLastTimeStamp() > recentTime) { recentTime = stats.getLastTimeStamp(); recentPkg = stats.getPackageName(); } } return recentPkg; } catch (Exception e) { e.printStackTrace(); } return ""; }
// TO ENABLE USAGE_STATS
// Declare USAGE_STATS permisssion in manifest <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" tools:ignore="ProtectedPermissions" /> Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS); startActivity(intent);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With