如何获取Dart语言2023中Android设备的Mac地址

问题描述 投票:0回答:2

我在 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"

}

}

android flutter dart authentication mac-address
2个回答
0
投票

您可以尝试以下插件来获取 Android 或 iOS 的 MAC 地址。

https://pub.dev/packages/mac_address

我希望你能得到你想要得到的东西。


0
投票

我相信出于隐私和安全考虑,我们无法再获取 MAC 地址。相反,android 和 ios 提供了一种识别设备的方法。

在IOS中我们可以使用

广告标识符

Android 版

设置.安全.ANDROID_ID

您可以使用 device_info_plus 收集一般设备信息。

© www.soinside.com 2019 - 2024. All rights reserved.