internet_speed_test 1.1.2
internet_speed_test: ^1.1.2 copied to clipboard
Internet speed test plugin to integrate it in your app whenever you want.
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:internet_speed_test/internet_speed_test.dart';
import 'package:internet_speed_test/callbacks_enum.dart';
void main() => runApp(MyApp());
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final internetSpeedTest = InternetSpeedTest();
double downloadRate = 0;
double uploadRate = 0;
String downloadProgress = '0';
String uploadProgress = '0';
String unitText = 'Mb/s';
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
Text('Progress $downloadProgress%'),
Text('Download rate $downloadRate $unitText'),
],
),
RaisedButton(
child: Text('start testing'),
onPressed: () {
internetSpeedTest.startDownloadTesting(
onDone: (double transferRate, SpeedUnit unit) {
print('the transfer rate $transferRate');
setState(() {
downloadRate = transferRate;
unitText = unit == SpeedUnit.Kbps ? 'Kb/s' : 'Mb/s';
downloadProgress = '100';
});
},
onProgress:
(double percent, double transferRate, SpeedUnit unit) {
print(
'the transfer rate $transferRate, the percent $percent');
setState(() {
downloadRate = transferRate;
unitText = unit == SpeedUnit.Kbps ? 'Kb/s' : 'Mb/s';
downloadProgress = percent.toStringAsFixed(2);
});
},
onError: (String errorMessage, String speedTestError) {
print(
'the errorMessage $errorMessage, the speedTestError $speedTestError');
},
testServer: 'https://speedtest.takamol.sy.prod.hosts.ooklaserver.net:8080/download?nocache=bc6eaf4b-8d4d-4756-9f77-9512655f6b2c&size=25000000&guid=ea24b1a6-eab7-4316-99d1-1971305e05d8',
fileSize: 20000000,
);
},
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
Text('Progress $uploadProgress%'),
Text('Upload rate $uploadRate Kb/s'),
],
),
RaisedButton(
child: Text('start testing'),
onPressed: () {
internetSpeedTest.startUploadTesting(
onDone: (double transferRate, SpeedUnit unit) {
print('the transfer rate $transferRate');
setState(() {
uploadRate = transferRate;
unitText = unit == SpeedUnit.Kbps ? 'Kb/s' : 'Mb/s';
uploadProgress = '100';
});
},
onProgress:
(double percent, double transferRate, SpeedUnit unit) {
print(
'the transfer rate $transferRate, the percent $percent');
setState(() {
uploadRate = transferRate;
unitText = unit == SpeedUnit.Kbps ? 'Kb/s' : 'Mb/s';
uploadProgress = percent.toStringAsFixed(2);
});
},
onError: (String errorMessage, String speedTestError) {
print(
'the errorMessage $errorMessage, the speedTestError $speedTestError');
},
testServer: 'https://speedtest.takamol.sy.prod.hosts.ooklaserver.net:8080/upload?nocache=a3fd0f07-a5f0-434c-900c-7aa5fd102858&guid=ea24b1a6-eab7-4316-99d1-1971305e05d8',
fileSize: 20000000,
);
},
),
],
),
),
),
);
}
}