{"id":9757,"date":"2024-09-16T09:17:15","date_gmt":"2024-09-16T09:17:15","guid":{"rendered":"https:\/\/ciit-training.com\/?p=9757"},"modified":"2025-11-11T10:01:53","modified_gmt":"2025-11-11T10:01:53","slug":"android-usagestatsmanager-tracking-app-usage-with-ease","status":"publish","type":"post","link":"https:\/\/ciit-training.com\/en\/2024\/09\/16\/android-usagestatsmanager-tracking-app-usage-with-ease\/","title":{"rendered":"Android UsageStatsManager \u2013 Tracking App Usage with Ease"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"9757\" class=\"elementor elementor-9757\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-919c031 e-flex e-con-boxed e-con e-parent\" data-id=\"919c031\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7511a3d exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-text-editor\" data-id=\"7511a3d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">In this article, we&#039;ll explore the UsageStatsManager class in Android and guide you through building a simple app to track app usage. A sample project is available here: <a href=\"https:\/\/gitlab.ciit-training.com\/amjad\/UsageStats\">UsageStats Sample Application<\/a>.<\/span><\/p><p><span style=\"font-weight: 400;\">Introduced in Android API level 21 (Lollipop), UsageStatsManager provides access to app usage history and statistics on a device. With it, developers can query app usage statistics, such as the amount of time an app has been used within a specified time range. In this example, we&#039;ll demonstrate how to retrieve usage statistics for apps over the last 24 hours.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-65c922c exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-heading\" data-id=\"65c922c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\"><span>Step 1 - Request the PACKAGE_USAGE_STATS Permission<\/span><\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e56f1a8 e-flex e-con-boxed e-con e-parent\" data-id=\"e56f1a8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-be800b5 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-text-editor\" data-id=\"be800b5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400\">To use UsageStatsManager, your app needs the PACKAGE_USAGE_STATS permission, which is a system-level permission. Add it to your AndroidManifest.xml:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3e4d0b8 e-flex e-con-boxed e-con e-parent\" data-id=\"3e4d0b8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ecc176c exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-code-highlight\" data-id=\"ecc176c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard word-wrap\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t&lt;uses-permission android:name=&quot;android.permission.PACKAGE_USAGE_STATS&quot; tools:ignore=&quot;ProtectedPermissions&quot; \/&gt;\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cec1691 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-spacer\" data-id=\"cec1691\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2b101b8 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-text-editor\" data-id=\"2b101b8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400\">Since this is a system-level permission, users must manually grant it in the device settings. To handle this, we need to check whether the permission is granted and, if not, guide the user to the settings to enable it. Here&#039;s how to check if the permission is granted:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b153bbc e-flex e-con-boxed e-con e-parent\" data-id=\"b153bbc\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f8cba95 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-code-highlight\" data-id=\"f8cba95\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard word-wrap\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-java line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-java\">\n\t\t\t\t\t\/\/import android.app.AppOpsManager; private boolean getGrantStatus() { AppOpsManager appOps = (AppOpsManager) getApplicationContext() .getSystemService(Context.APP_OPS_SERVICE); int mode = appOps.checkOpNoThrow(OPSTR_GET_USAGE_STATS, android.os.Process.myUid(), getApplicationContext().getPackageName()); if (mode == AppOpsManager.MODE_DEFAULT) { return (getApplicationContext().checkCallingOrSelfPermission(android.Manifest.permission.PACKAGE_USAGE_STATS) == PackageManager.PERMISSION_GRANTED); } else { return (mode == MODE_ALLOWED); } }\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-419ee55 e-flex e-con-boxed e-con e-parent\" data-id=\"419ee55\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e7e46f6 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-spacer\" data-id=\"e7e46f6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8f83e29 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-text-editor\" data-id=\"8f83e29\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400\">If permission is not granted, the user will be prompted to enable it by clicking a button (enableBtn). This redirects them to the usage access settings on the device. I recommend performing this check in the onStart() method of the activity lifecycle, which ensures that permission status is always verified when the app comes to the foreground. This way, if the user revokes the permission, the app will detect the change immediately. Once the permission is granted, a different button (showBtn) will appear. That allows the user to start retrieving the app usage statistics by clicking it.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cd24f08 e-flex e-con-boxed e-con e-parent\" data-id=\"cd24f08\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7c00136 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-code-highlight\" data-id=\"7c00136\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard word-wrap\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-java line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-java\">\n\t\t\t\t\t\/\/import android.widget.Button; \/\/import android.content.Intent; \/\/import android.provider.Settings; \/\/import android.view.View; @Override protected void onStart() { super.onStart(); if (getGrantStatus()) { showBtn.setOnClickListener(view -&gt; { loadUsage(); }); } else { enableBtn.setOnClickListener(view -&gt; { startActivity(new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS)); }); } }\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0682e8a exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-spacer\" data-id=\"0682e8a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3871078 e-flex e-con-boxed e-con e-parent\" data-id=\"3871078\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-82c9e14 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-heading\" data-id=\"82c9e14\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\">Step 2 - Retrieving App Usage Statistics<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-252b2ad exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-text-editor\" data-id=\"252b2ad\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400\">Once permission is granted, we can use UsageStatsManager to retrieve the app usage statistics. The queryUsageStats() method is used to get the app usage data for a specified time range, aggregated by the chosen interval (eg, daily, hourly). Here&#039;s an example of retrieving the usage data for the last 24 hours:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2ea3636 e-flex e-con-boxed e-con e-parent\" data-id=\"2ea3636\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c1f7bba exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-code-highlight\" data-id=\"c1f7bba\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard word-wrap\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-java line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-java\">\n\t\t\t\t\t\/\/import android.app.usage.UsageStats; \/\/import android.app.usage.UsageStatsManager; UsageStatsManager usm = (UsageStatsManager) this.getSystemService(USAGE_STATS_SERVICE); List appList = usm.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, System.currentTimeMillis() - 1000*3600*24, System.currentTimeMillis());\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3c36d5e e-flex e-con-boxed e-con e-parent\" data-id=\"3c36d5e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4eb6e79 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-spacer\" data-id=\"4eb6e79\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-17a6b84 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-text-editor\" data-id=\"17a6b84\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400\">At this point, we have a list of UsageStats objects, which contain usage statistics for each app. However, the list may include duplicate entries for the same app, based on factors like usage duration, foreground activity, and closing time. To resolve this, we can group the entries by app in a SortedMap, using the total foreground time for each app as the key. This approach consolidates the data, eliminating duplicates.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5b1a1fb e-flex e-con-boxed e-con e-parent\" data-id=\"5b1a1fb\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8f21108 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-code-highlight\" data-id=\"8f21108\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-java line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-java\">\n\t\t\t\t\t\/\/import java.util.SortedMap; if (appList != null &amp;&amp; appList.size() &gt; 0) { SortedMap mySortedMap = new TreeMap(); for (UsageStats usageStats : appList) { mySortedMap.put(usageStats.getTotalTimeInForeground(), usageStats); } }\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-218816f e-flex e-con-boxed e-con e-parent\" data-id=\"218816f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-24defbf exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-spacer\" data-id=\"24defbf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-60e8bbb exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-text-editor\" data-id=\"60e8bbb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">We now have a list of usage stats containing all the necessary data about the usage time of installed applications over the last 24 hours. This list can be used to create an `ArrayAdapter`, which can then be supplied to a `ListView` to display the app usage statistics. For a complete example of how to implement this, including how to fetch and display the app icons and names, check out the full source here: <a href=\"https:\/\/gitlab.ciit-training.com\/amjad\/UsageStats\">UsageStats Sample Application<\/a>.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a6cf831 e-flex e-con-boxed e-con e-parent\" data-id=\"a6cf831\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a8dccc8 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-image\" data-id=\"a8dccc8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"452\" src=\"https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2024\/09\/Amjad-Blog-Bild-1024x579.png\" class=\"attachment-large size-large wp-image-9767\" alt=\"\" srcset=\"https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2024\/09\/Amjad-Blog-Bild-1024x579.png 1024w, https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2024\/09\/Amjad-Blog-Bild-300x170.png 300w, https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2024\/09\/Amjad-Blog-Bild-768x434.png 768w, https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2024\/09\/Amjad-Blog-Bild-1536x868.png 1536w, https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2024\/09\/Amjad-Blog-Bild-2048x1157.png 2048w, https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2024\/09\/Amjad-Blog-Bild-18x10.png 18w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>In this article, we&#8217;ll explore the UsageStatsManager class in Android and guide you through building a simple app to track app usage. A sample project is available here: UsageStats Sample Application. Introduced in Android API level 21 (Lollipop), UsageStatsManager provides access to app usage history and statistics on a device. With it, developers can query [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":9761,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[71,78,73,80,74,69,75,77,76,79,70,72],"class_list":["post-9757","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-android","tag-app-development","tag-app-performance","tag-app-tracking","tag-app-usage-reporting","tag-app-usage-tracking","tag-ciit","tag-ciit-software","tag-ciit-training","tag-github","tag-usage-insights","tag-user-behavior"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Android UsageStatsManager - Tracking App Usage with Ease - CIIT Training<\/title>\n<meta name=\"description\" content=\"Learn to track app usage on Android with UsageStatsManager. Includes code examples and a GitHub sample app for easy implementation.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ciit-training.com\/en\/2024\/09\/16\/android-usagestatsmanager-tracking-app-usage-with-ease\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Android UsageStatsManager - Tracking App Usage with Ease - CIIT Training\" \/>\n<meta property=\"og:description\" content=\"Learn to track app usage on Android with UsageStatsManager. Includes code examples and a GitHub sample app for easy implementation.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ciit-training.com\/en\/2024\/09\/16\/android-usagestatsmanager-tracking-app-usage-with-ease\/\" \/>\n<meta property=\"og:site_name\" content=\"CIIT Training\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javatraining.at\" \/>\n<meta property=\"article:published_time\" content=\"2024-09-16T09:17:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-11T10:01:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2024\/09\/PPT-Praesentation-21-1024x576.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"576\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"wiki\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@JavaTrainingAT\" \/>\n<meta name=\"twitter:site\" content=\"@JavaTrainingAT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"wiki\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\\\/\\\/ciit-training.com\\\/2024\\\/09\\\/16\\\/android-usagestatsmanager-tracking-app-usage-with-ease\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ciit-training.com\\\/2024\\\/09\\\/16\\\/android-usagestatsmanager-tracking-app-usage-with-ease\\\/\"},\"author\":{\"name\":\"wiki\",\"@id\":\"https:\\\/\\\/ciit-training.com\\\/#\\\/schema\\\/person\\\/da3b2b472673dcc7f0933808391c9ccf\"},\"headline\":\"Android UsageStatsManager &#8211; Tracking App Usage with Ease\",\"datePublished\":\"2024-09-16T09:17:15+00:00\",\"dateModified\":\"2025-11-11T10:01:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/ciit-training.com\\\/2024\\\/09\\\/16\\\/android-usagestatsmanager-tracking-app-usage-with-ease\\\/\"},\"wordCount\":479,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/ciit-training.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/ciit-training.com\\\/2024\\\/09\\\/16\\\/android-usagestatsmanager-tracking-app-usage-with-ease\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ciit-training.com\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/09\\\/PPT-Praesentation-21.png\",\"keywords\":[\"Android\",\"App Development\",\"App Performance\",\"App Tracking\",\"App Usage Reporting\",\"App Usage Tracking\",\"CIIT\",\"CIIT Software\",\"CIIT Training\",\"Github\",\"Usage Insights\",\"User Behavior\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/ciit-training.com\\\/2024\\\/09\\\/16\\\/android-usagestatsmanager-tracking-app-usage-with-ease\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ciit-training.com\\\/2024\\\/09\\\/16\\\/android-usagestatsmanager-tracking-app-usage-with-ease\\\/\",\"url\":\"https:\\\/\\\/ciit-training.com\\\/2024\\\/09\\\/16\\\/android-usagestatsmanager-tracking-app-usage-with-ease\\\/\",\"name\":\"Android UsageStatsManager - Tracking App Usage with Ease - CIIT Training\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ciit-training.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/ciit-training.com\\\/2024\\\/09\\\/16\\\/android-usagestatsmanager-tracking-app-usage-with-ease\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/ciit-training.com\\\/2024\\\/09\\\/16\\\/android-usagestatsmanager-tracking-app-usage-with-ease\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ciit-training.com\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/09\\\/PPT-Praesentation-21.png\",\"datePublished\":\"2024-09-16T09:17:15+00:00\",\"dateModified\":\"2025-11-11T10:01:53+00:00\",\"description\":\"Learn to track app usage on Android with UsageStatsManager. Includes code examples and a GitHub sample app for easy implementation.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ciit-training.com\\\/2024\\\/09\\\/16\\\/android-usagestatsmanager-tracking-app-usage-with-ease\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ciit-training.com\\\/2024\\\/09\\\/16\\\/android-usagestatsmanager-tracking-app-usage-with-ease\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ciit-training.com\\\/2024\\\/09\\\/16\\\/android-usagestatsmanager-tracking-app-usage-with-ease\\\/#primaryimage\",\"url\":\"https:\\\/\\\/ciit-training.com\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/09\\\/PPT-Praesentation-21.png\",\"contentUrl\":\"https:\\\/\\\/ciit-training.com\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/09\\\/PPT-Praesentation-21.png\",\"width\":6000,\"height\":3375},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ciit-training.com\\\/2024\\\/09\\\/16\\\/android-usagestatsmanager-tracking-app-usage-with-ease\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/ciit-training.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Android UsageStatsManager &#8211; Tracking App Usage with Ease\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/ciit-training.com\\\/#website\",\"url\":\"https:\\\/\\\/ciit-training.com\\\/\",\"name\":\"CIIT Training\",\"description\":\"Javatraing\",\"publisher\":{\"@id\":\"https:\\\/\\\/ciit-training.com\\\/#organization\"},\"alternateName\":\"Javatraining\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/ciit-training.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/ciit-training.com\\\/#organization\",\"name\":\"CIIT GmbH\",\"alternateName\":\"Schaffler & Gl\u00f6\u00dfl GmbH\",\"url\":\"https:\\\/\\\/ciit-training.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ciit-training.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/ciit-training.com\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/11\\\/CIIT_Logo_BrightBackground_Blau_ohne_at.png\",\"contentUrl\":\"https:\\\/\\\/ciit-training.com\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/11\\\/CIIT_Logo_BrightBackground_Blau_ohne_at.png\",\"width\":512,\"height\":512,\"caption\":\"CIIT GmbH\"},\"image\":{\"@id\":\"https:\\\/\\\/ciit-training.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javatraining.at\",\"https:\\\/\\\/x.com\\\/JavaTrainingAT\",\"https:\\\/\\\/www.linkedin.com\\\/showcase\\\/javatraining.at\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/ciit-training.com\\\/#\\\/schema\\\/person\\\/da3b2b472673dcc7f0933808391c9ccf\",\"name\":\"wiki\",\"url\":\"https:\\\/\\\/ciit-training.com\\\/en\\\/author\\\/wiki\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Android UsageStatsManager - Tracking App Usage with Ease - CIIT Training","description":"Learn to track app usage on Android with UsageStatsManager. Includes code examples and a GitHub sample app for easy implementation.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ciit-training.com\/en\/2024\/09\/16\/android-usagestatsmanager-tracking-app-usage-with-ease\/","og_locale":"en_US","og_type":"article","og_title":"Android UsageStatsManager - Tracking App Usage with Ease - CIIT Training","og_description":"Learn to track app usage on Android with UsageStatsManager. Includes code examples and a GitHub sample app for easy implementation.","og_url":"https:\/\/ciit-training.com\/en\/2024\/09\/16\/android-usagestatsmanager-tracking-app-usage-with-ease\/","og_site_name":"CIIT Training","article_publisher":"https:\/\/www.facebook.com\/javatraining.at","article_published_time":"2024-09-16T09:17:15+00:00","article_modified_time":"2025-11-11T10:01:53+00:00","og_image":[{"width":1024,"height":576,"url":"https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2024\/09\/PPT-Praesentation-21-1024x576.png","type":"image\/png"}],"author":"wiki","twitter_card":"summary_large_image","twitter_creator":"@JavaTrainingAT","twitter_site":"@JavaTrainingAT","twitter_misc":{"Written by":"wiki","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/ciit-training.com\/2024\/09\/16\/android-usagestatsmanager-tracking-app-usage-with-ease\/#article","isPartOf":{"@id":"https:\/\/ciit-training.com\/2024\/09\/16\/android-usagestatsmanager-tracking-app-usage-with-ease\/"},"author":{"name":"wiki","@id":"https:\/\/ciit-training.com\/#\/schema\/person\/da3b2b472673dcc7f0933808391c9ccf"},"headline":"Android UsageStatsManager &#8211; Tracking App Usage with Ease","datePublished":"2024-09-16T09:17:15+00:00","dateModified":"2025-11-11T10:01:53+00:00","mainEntityOfPage":{"@id":"https:\/\/ciit-training.com\/2024\/09\/16\/android-usagestatsmanager-tracking-app-usage-with-ease\/"},"wordCount":479,"commentCount":0,"publisher":{"@id":"https:\/\/ciit-training.com\/#organization"},"image":{"@id":"https:\/\/ciit-training.com\/2024\/09\/16\/android-usagestatsmanager-tracking-app-usage-with-ease\/#primaryimage"},"thumbnailUrl":"https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2024\/09\/PPT-Praesentation-21.png","keywords":["Android","App Development","App Performance","App Tracking","App Usage Reporting","App Usage Tracking","CIIT","CIIT Software","CIIT Training","Github","Usage Insights","User Behavior"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ciit-training.com\/2024\/09\/16\/android-usagestatsmanager-tracking-app-usage-with-ease\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ciit-training.com\/2024\/09\/16\/android-usagestatsmanager-tracking-app-usage-with-ease\/","url":"https:\/\/ciit-training.com\/2024\/09\/16\/android-usagestatsmanager-tracking-app-usage-with-ease\/","name":"Android UsageStatsManager - Tracking App Usage with Ease - CIIT Training","isPartOf":{"@id":"https:\/\/ciit-training.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ciit-training.com\/2024\/09\/16\/android-usagestatsmanager-tracking-app-usage-with-ease\/#primaryimage"},"image":{"@id":"https:\/\/ciit-training.com\/2024\/09\/16\/android-usagestatsmanager-tracking-app-usage-with-ease\/#primaryimage"},"thumbnailUrl":"https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2024\/09\/PPT-Praesentation-21.png","datePublished":"2024-09-16T09:17:15+00:00","dateModified":"2025-11-11T10:01:53+00:00","description":"Learn to track app usage on Android with UsageStatsManager. Includes code examples and a GitHub sample app for easy implementation.","breadcrumb":{"@id":"https:\/\/ciit-training.com\/2024\/09\/16\/android-usagestatsmanager-tracking-app-usage-with-ease\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ciit-training.com\/2024\/09\/16\/android-usagestatsmanager-tracking-app-usage-with-ease\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ciit-training.com\/2024\/09\/16\/android-usagestatsmanager-tracking-app-usage-with-ease\/#primaryimage","url":"https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2024\/09\/PPT-Praesentation-21.png","contentUrl":"https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2024\/09\/PPT-Praesentation-21.png","width":6000,"height":3375},{"@type":"BreadcrumbList","@id":"https:\/\/ciit-training.com\/2024\/09\/16\/android-usagestatsmanager-tracking-app-usage-with-ease\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ciit-training.com\/"},{"@type":"ListItem","position":2,"name":"Android UsageStatsManager &#8211; Tracking App Usage with Ease"}]},{"@type":"WebSite","@id":"https:\/\/ciit-training.com\/#website","url":"https:\/\/ciit-training.com\/","name":"CIIT Training","description":"Java training","publisher":{"@id":"https:\/\/ciit-training.com\/#organization"},"alternateName":"Javatraining","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ciit-training.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/ciit-training.com\/#organization","name":"CIIT GmbH","alternateName":"Schaffler & Gl\u00f6\u00dfl GmbH","url":"https:\/\/ciit-training.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ciit-training.com\/#\/schema\/logo\/image\/","url":"https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2023\/11\/CIIT_Logo_BrightBackground_Blau_ohne_at.png","contentUrl":"https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2023\/11\/CIIT_Logo_BrightBackground_Blau_ohne_at.png","width":512,"height":512,"caption":"CIIT GmbH"},"image":{"@id":"https:\/\/ciit-training.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javatraining.at","https:\/\/x.com\/JavaTrainingAT","https:\/\/www.linkedin.com\/showcase\/javatraining.at\/"]},{"@type":"Person","@id":"https:\/\/ciit-training.com\/#\/schema\/person\/da3b2b472673dcc7f0933808391c9ccf","name":"wiki","url":"https:\/\/ciit-training.com\/en\/author\/wiki\/"}]}},"_links":{"self":[{"href":"https:\/\/ciit-training.com\/en\/wp-json\/wp\/v2\/posts\/9757","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ciit-training.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ciit-training.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ciit-training.com\/en\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/ciit-training.com\/en\/wp-json\/wp\/v2\/comments?post=9757"}],"version-history":[{"count":0,"href":"https:\/\/ciit-training.com\/en\/wp-json\/wp\/v2\/posts\/9757\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ciit-training.com\/en\/wp-json\/wp\/v2\/media\/9761"}],"wp:attachment":[{"href":"https:\/\/ciit-training.com\/en\/wp-json\/wp\/v2\/media?parent=9757"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ciit-training.com\/en\/wp-json\/wp\/v2\/categories?post=9757"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ciit-training.com\/en\/wp-json\/wp\/v2\/tags?post=9757"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}