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

results matching ""

    No results matching ""