app_usage

Creator: coderz1093

Last updated:

Add to Cart

Description:

app usage

App Usage #

Application usage stats for Android only. Note that the stats are only precise down to a daily basis. This is a limitation from Google's implementation.
Install #
Add app_usage as a dependency in pubspec.yaml.
For help on adding as a dependency, view the documentation.
Android #

Note: Requires API level 21 as a minimum.

I.e. you need to set the min SDK version inside the android/app/build.gradle:
minSdkVersion 21
copied to clipboard
You need to add the following package to the manifest namespace in AndroidManifest.xml:
xmlns:tools="http://schemas.android.com/tools"
copied to clipboard
as well as the following permissions to the manifest:
<uses-permission
android:name="android.permission.PACKAGE_USAGE_STATS"
tools:ignore="ProtectedPermissions" />
copied to clipboard
Below is an example of how the start of your manifest should look in the end
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="YOUR_PACKAGE_NAME_HERE"
xmlns:tools="http://schemas.android.com/tools">

<uses-permission
android:name="android.permission.PACKAGE_USAGE_STATS"
tools:ignore="ProtectedPermissions"/>
copied to clipboard
Usage #
The AppUsage class works as a singleton and you get app usage statistics by calling:
AppUsage().getAppUsage(startDate, endDate)
copied to clipboard
A larger example (from the example app) could look like:
void getUsageStats() async {
try {
DateTime endDate = DateTime.now();
DateTime startDate = endDate.subtract(Duration(hours: 1));
List<AppUsageInfo> infoList =
await AppUsage().getAppUsage(startDate, endDate);
setState(() => _infos = infoList);

for (var info in infoList) {
print(info.toString());
}
} on AppUsageException catch (exception) {
print(exception);
}
}
copied to clipboard
Each AppUsageInfo object has the following public fields:
/// The name of the application
String get appName => _appName;

/// The name of the application package
String get packageName => _packageName;

/// The amount of time the application has been used
/// in the specified interval
Duration get usage => _usage;

/// The start of the interval
DateTime get startDate => _startDate;

/// The end of the interval
DateTime get endDate => _endDate;

/// Last time app was in foreground
DateTime get lastForeground => _lastForeground;

copied to clipboard
Example app #
The example app shows how to use the plugin.
The first screen will ask for permission to view usage stats. Tap on your application and allow it to access usage information. Then you can "download" app usage stats by pressing the arrow button.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.