device_info_plus 插件获取设备信息
https://pub.dev/packages/device_info_plus
dependencies:
device_info_plus: ^4.1.2
import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:device_info_plus/device_info_plus.dart';
class DevicePage extends StatefulWidget {
const DevicePage({super.key});
@override
State<DevicePage> createState() => _DevicePageState();
}
class _DevicePageState extends State<DevicePage> {
late List<Widget> _list = [];
@override
void initState() {
super.initState();
_getDeviceInfo();
}
_getDeviceInfo() async {
final deviceInfoPlugin = DeviceInfoPlugin();
final deviceInfo = await deviceInfoPlugin.deviceInfo;
final deviceInfoMap = deviceInfo.toMap();
var templist = deviceInfoMap.entries.map((e) {
return ListTile(
title: Text("${e.key}:${e.value}"),
);
}).toList();
setState(() {
_list=templist;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Device演示'),
),
body: ListView(
children: _list,
),
);
}
}
注意: 配置完成插件后重新运行
connectivity_plus 检测网络
地址: https://pub.dev/packages/connectivity_plus
dependencies:
connectivity_plus: ^2.3.6+1
import 'package:flutter/material.dart';
import 'package:connectivity_plus/connectivity_plus.dart';
class NetworkPage extends StatefulWidget {
const NetworkPage({super.key});
@override
State<NetworkPage> createState() => _NetworkPageState();
}
class _NetworkPageState extends State<NetworkPage> {
dynamic subscription;
String _stateText = "检测中...";
@override
void initState() {
super.initState();
subscription = Connectivity()
.onConnectivityChanged
.listen((ConnectivityResult result) {
if (result == ConnectivityResult.wifi) {
setState(() {
_stateText = "处于 wifi";
});
} else if (result == ConnectivityResult.mobile) {
setState(() {
_stateText = "处于手机网络";
});
} else {
setState(() {
_stateText = "没有网络";
});
}
});
}
@override
void dispose() {
// TODO: implement dispose
super.dispose();
subscription.cancel();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('检测网络'),
),
body: Center(
child: Text(_stateText),
),
);
}
}
url_launcher 配置打开URL、拨打电话 、发送短信 、打开外部应用、打开高德地图
地址:https://pub.dev/packages/url_launcher
Android配置
修改:android/app/src/main/AndroidManifest.xml
<!-- Provide required visibility configuration for API level 30 and above -->
<queries>
<!-- If your app checks for SMS support -->
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="sms" />
</intent>
<!-- If your app checks for call support -->
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="tel" />
</intent>
</queries>
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
Ios配置
配置拨打电话、发送邮件、打开外部应用、高德地图导航Info.plist