如何在Flutter中获取设备的 MAC 地址?
Flutter SDK 是 Google 的一个开源软件开发工具包,用于从单个代码库为多个平台开发应用程序。有时,您的应用需要知道设备的 MAC 地址。 MAC(媒体访问控制)地址是 LAN 网络上设备的唯一标识符。
方法:使用flutter包get_mac获取客户端设备的MAC地址。
分步实施
第 1 步:导航到pubspec.yaml文件
在 VS Code 中打开您的项目并导航到pubspec.yaml文件:
第二步:添加依赖
添加get_mac dart包作为依赖项并保存文件。
第三步:下载依赖
在 VS 代码中打开终端并运行以下命令以下载添加的依赖项。
flutter pub get
第 4 步:示例代码
我们将使用GetMac的macAddress属性来获取设备的 MAC 地址。这适用于 iOS 和 Android 设备。
Syntax:
String macAddress = await GetMac.macAddress;
Dart
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:get_mac/get_mac.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'MAC Finder',
theme: ThemeData(
primarySwatch: Colors.green,
),
home: const Home(),
);
}
}
class Home extends StatefulWidget {
const Home({Key? key}) : super(key: key);
@override
State createState() => _HomeState();
}
class _HomeState extends State {
String _deviceMAC = 'Click the button.';
// Platform messages are async in nature
// that's why we made a async function.
Future initMacAddress() async {
String macAddress;
try {
macAddress = await GetMac.macAddress;
} on PlatformException {
macAddress = 'Error getting the MAC address.';
}
setState(() {
_deviceMAC = macAddress;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('MAC address of a device'),
),
body: Center(
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
_deviceMAC,
style: const TextStyle(fontSize: 26, fontWeight: FontWeight.bold),
),
ElevatedButton(
onPressed: () {
initMacAddress();
},
child: const Text("Get MAC Address"),
),
],
),
),
);
}
}
输出:
Note: The get_mc package does not support null safety. You may have to use: flutter run –no-sound-null-safety to run the app.