Data Usage

Data Usage gets Mobile/Wifi data usage values from mobile devices, on android it will fetch the data app by app but due to current limitations on ios it can only give the total/complete valeus of overall data used.

Screen Shots

Usage for Android

  • Initialize plugin and requests for permission
  • Request Data usage stats
     DataUsageModel.init() // Only Required for Android
     List<DataUsageModel> dataUsage = await DataUsage.dataUsageAndroid(
        withAppIcon: true, // if false `DataUsageModel.appIconBytes` will be null
        dataUsageType: DataUsageType.wifi, // DataUsageType.wifi | DataUsageType.mobile
        oldVersion: false // will be true for Android versions lower than 23 (MARSHMELLOW)
      );

This would return:

      [   ...,
         DataUsageModel({
               String appName; //App's Name
               String packageName; // App's package name
               Uint8List appIconBytes; // Icon in bytes
               int received; // Amount of data Received
               int sent; // Amount of data sent/transferred
         })
      ]

For more explanation

Usage for iOS

Request for Total data usage on iOS devices

     Future<IOSDataUsageModel> dataUsage = await DataUsage.dataUsageIOS();

This would return:

     IOSDataUsageModel({
        int wifiCompelete, // Total Amount of wifi data (received + sent)
        int wifiReceived, // Amount of wifi data Received
        int wifiSent, // Amount of data sent/transferred
        int wwanCompelete, // Total Amount of mobile data (received + sent)
        int wwanReceived, // Amount of mobile data Received
        int wwanSent // Amount of data sent/transferred
     });

Contribution

Lots of PR's would be needed to make this plugin standard, as for iOS there's a permanent limitation for getting the exact data usage, there's only one way arount it and it's super complex.

Libraries

data_usage