我在 2023 年登录时遇到 Mac 地址识别设备问题。
我已经尝试了所有方法,但找不到解决此问题的方法: 1-使用 mac_address 。 2- MainActivity 类:FlutterActivity() {
private val CHANNEL = "com.example.getmac";
private lateinit var channel: MethodChannel
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
channel = MethodChannel(flutterEngine.dartExecutor.binaryMessenger,CHANNEL)
channel.setMethodCallHandler { call, result ->
if(call.method == "getMAC"){
var mac = getMacAddress();
result.success(mac);
Toast.makeText(this, mac, Toast.LENGTH_LONG).show()
}
}
}
// a function that return mac
private fun getMacAddress(): String? {
try {
val all: List<NetworkInterface> =
Collections.list<NetworkInterface>(NetworkInterface.getNetworkInterfaces())
for (nif in all) {
if (!nif.getName().equals("wlan0", ignoreCase = true)) continue
val macBytes: ByteArray = nif.getHardwareAddress() ?: return ""
val res1 = StringBuilder()
for (b in macBytes) {
res1.append(String.format("%02X:", b))
}
if (res1.length > 0) {
res1.deleteCharAt(res1.length - 1)
}
return res1.toString()
}
} catch (ex: Exception) {
}
return "02:00:00:00:00:00"
}
}
我相信出于隐私和安全考虑,我们无法再获取 MAC 地址。相反,android 和 ios 提供了一种识别设备的方法。
在IOS中我们可以使用
Android 版
您可以使用 device_info_plus 收集一般设备信息。