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

j91ykkif  于 2023-05-23  发布在  Flutter
关注(0)|答案(1)|浏览(344)

我在2023年登录时遇到Mac地址识别设备问题。
我试过了所有的方法,但我找不到解决这个问题的方法:1-使用的mac_address。2类主活动:public void run(){

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"

}

}

nnt7mjpx

nnt7mjpx1#

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

https://pub.dev/packages/mac_address

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

相关问题