flutter是否有一些代码或其他软件包来获取设备的MAC地址?如果有任何参考,请告诉我,谢谢。
答案 0 :(得分:2)
Flutter只能执行底层操作系统所能做的事情,因为iOS 7和Android 6起,您将始终得到相同的响应02:00:00:00:00:00
,这是由Apple和{{3 }},以解决隐私问题。
引用苹果
在iOS 7和更高版本中,如果您要求提供iOS设备的MAC地址,系统将返回值02:00:00:00:00:00。如果需要标识设备,请改用UIDevice的identifierForVendor属性。 (出于广告目的需要标识符的应用,应考虑改用ASIdentifierManager的advertisingIdentifier属性。)
引用Google
为了向用户提供更大的数据保护,从此版本开始,Android删除了使用Wi-Fi和Bluetooth API对应用的设备本地硬件标识符的编程访问。 WifiInfo.getMacAddress()和BluetoothAdapter.getAddress()方法现在返回常数值02:00:00:00:00:00。
长话短说,没有可用的MAC地址。
答案 1 :(得分:1)
我使用了此软件包 wifi_info_plugin 并可以获得macadrress
答案 2 :(得分:0)
您可以使用get_mac软件包轻松获得Mac地址。它支持IOS和Android。 在要获取Mac地址的位置导入Dart文件。
然后参考此示例-:
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:get_mac/get_mac.dart';
class SplashScreen extends StatefulWidget {
@override
_SplashScreenState createState() => _SplashScreenState();
}
class _SplashScreenState extends State<SplashScreen> {
String _platformID = 'Unknown';
@override
void initState() {
super.initState();
initPlatformState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
body: Center(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Image.asset(
"images/logo.png",
height: 250.0,
width: 250.0,
),
Text(_platformID)
],
),
),
);
}
Future<void> initPlatformState() async {
String platformVersion;
try {
platformVersion = await GetMac.macAddress;
} on PlatformException {
platformVersion = 'Failed to get Device MAC Address.';
}
print("MAC-: " + platformVersion);
if (!mounted) return;
setState(() {
_platformID = platformVersion;
});
}
}