Add app_usage
as a dependency in pubspec.yaml
.
For help on adding as a dependency, view the documentation.
NB: Requires API level 21 as a minimum!
You need to add the following package to the manifest namespace in AndroidManifest.xml
:
xmlns:tools="http://schemas.android.com/tools"
as well as the following permissions to the manifest:
<uses-permission
android:name="android.permission.PACKAGE_USAGE_STATS"
tools:ignore="ProtectedPermissions" />
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"/>
void getUsageStats() async {
// Initialization
AppUsage appUsage = new AppUsage();
try {
// Define a time interval
DateTime endDate = new DateTime.now();
DateTime startDate = DateTime(endDate.year, endDate.month, endDate.day, 0, 0, 0);
// Fetch the usage stats
Map<String, double> usage = await appUsage.fetchUsage(startDate, endDate);
// (Optional) Remove entries for apps with 0 usage time
usage.removeWhere((key,val) => val == 0);
}
on AppUsageException catch (exception) {
print(exception);
}
}
The first screen will ask for permission to view usage stats. Tap on your application.
Tap on the 'Permit usage access' switch.
Your application is now running, if the manifest has been corectly set up you should be presented with the following screen after tapping the refresh button.