flutter - 如何计算所有设备信息,例如:语音网络类型、信号强度、下载速度和上传速度
问题描述
现在我创建了一个与以下相关的代码Network Info
:
import 'package:flutter/material.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:android_device_info/android_device_info.dart';
import '../widgets/row_item.dart';
class NetworkTab extends StatefulWidget {
@override
_NetworkTabState createState() => _NetworkTabState();
}
class _NetworkTabState extends State<NetworkTab> {
var data = {};
@override
void initState() {
super.initState();
getData();
}
getData() async {
var data = {};
final memory = await AndroidDeviceInfo().getNetworkInfo();
final display = await AndroidDeviceInfo().getNfcInfo();
var sim = await AndroidDeviceInfo().getSimInfo();
data.addAll(memory);
data.addAll(display);
data.addAll(sim);
if (mounted) {
setState(() {
this.data = data;
});
}
var permission =
await PermissionHandler().checkPermissionStatus(PermissionGroup.phone);
if (permission == PermissionStatus.denied) {
var permissions =
await PermissionHandler().requestPermissions([PermissionGroup.phone]);
if (permissions[PermissionGroup.phone] == PermissionStatus.granted) {
sim = await AndroidDeviceInfo().getSimInfo();
data.addAll(sim);
if (mounted) {
setState(() {
this.data = data;
});
}
}
}
}
@override
Widget build(BuildContext context) {
if (data.isEmpty) {
return Center(child: CircularProgressIndicator());
}
return SingleChildScrollView(
child: Column(
children: <Widget>[
Divider(),
RowItem('Network Available', '${data['isNetworkAvailable']}'),
RowItem('Network', '${data['networkType']}'),
RowItem('iPv4 Address', '${data['iPv4Address']}'),
RowItem('iPv6 Address', '${data['iPv6Address']}'),
RowItem('WiFi Enabled', '${data['isWifiEnabled']}'),
RowItem('WiFi SSID', '${data['wifiSSID']}'),
RowItem('WiFi BSSID', '${data['wifiBSSID']}'),
RowItem('WiFi Speed', '${data['wifiLinkSpeed']}'),
RowItem('NFC Enabledweeds', '${data['wifiLinkSpeed']}'),
RowItem('WiFi MAC', '${data['wifiMAC']}'),
Divider(),
RowItem('NFC Present', '${data['isNfcPresent']}'),
RowItem('NFC Enabled', '${data['isNfcEnabled']}'),
Divider(),
RowItem('IMSI', '${data['imsi']}'),
RowItem('Serial', '${data['serial']}'),
RowItem('Country', '${data['country']}'),
RowItem('Carrier', '${data['carrier']}'),
RowItem('SIM Locked', '${data['isSimNetworkLocked']}'),
RowItem('activeMultiSimInfo', '${data['activeMultiSimInfo']}'),
RowItem('Multi SIM', '${data['isMultiSim']}'),
RowItem('Active SIM(s)', '${data['numberOfActiveSim']}'),
Divider(),
],
),
);
}
}
通过使用以下插件:
device_info: ^0.4.2+4
android_device_info: ^1.0.0
connectivity: ^0.4.8+6
我需要在图片下方获取这些类型的信息:
以及我在拨打此代码时得到的那些信息*#*#4636#*#*
,并且我得到这个屏幕来访问电话信息,如下图所示:
我搜索了很多,找不到插件给我这个信息使用flutter
和dart
我希望有人能帮我解决这个问题!!
总的来说,我想创建类似以下链接的Open Signal
访问移动网络或网络的应用程序:sim
https://play.google.com/store/apps/details?id=com.staircase3.opensignal&gl=NL
那么,是否缺少任何插件或方法来找出这些类型的移动 mesuremts 属性?
解决方案
推荐阅读
- python-3.x - 如何使用 Python 中的键扩展字典中的值
- api - 有没有办法从 URL(“存储库”)获取 API?
- javascript - 如何摆脱«POST net::ERR_CONNECTION_RESET»错误?
- firebase - Firebase Hosting Rewrite to Cloud Function Prompting for Login
- c - 用scanf读取整数的正确方法?
- maven - 无法将 maven 项目导入 IntelliJ,无法识别的选项:-d64
- r - rmarkdown 矩阵没有按预期运行或在 rstudio 中看到
- python - How do I convert lines of sentences into a list of tuples?
- javascript - Show an alert client side when a promise is rejected server side
- python - 如果我在一张(大)图像上训练我的模型,一步是否等于一个纪元?