Wie kann ich BSSID (MAC-Adresse des WLAN-Routers, den ich anschließe, nicht meine Gerät-MAC-Adresse) in meiner Unity Game App auf Android- und iOS-Telefon erhalten?Wie bekomme ich BSSID von Wifi ich in Unity (C#) verbinden?
Ich habe diese Methode versucht, aber keine von ihnen funktioniert. Ich überprüfe das Ergebnis, indem ich es auf Spielszene drucke. Bitte helfen
* Methode 1: Dieser Code arbeiten gut und bekommen die Informationen richtig BSSID, aber es ist nur auf Editor arbeiten, wenn ich es auf Android App bauen es nicht funktioniert, Rückgabe-String ist nichts (nicht null, aber leeren Wert).
string mac = "";
var card = NetworkInterface.GetAllNetworkInterfaces().FirstOrDefault();
if (card == null)
return null;
else
{
byte[] bytes = card.GetPhysicalAddress().GetAddressBytes();
for (int i = 0; i < bytes.Length; i++)
{
mac = string.Concat(mac + (string.Format("{0}", bytes[i].ToString("X2"))));
if (i != bytes.Length - 1)
{
//This is just for formating the final result
mac = string.Concat(mac + ":");
}
}
mac = card.GetPhysicalAddress().ToString();
return mac;
}
* Methode 2: Ich verwende AndroidJavaClass eine Android-Funktion aufzurufen BSSID auf Android Phone als in Unity-Dokument zu erhalten. Weitere Daten zu AndroidJavaClass in Unity und WifiInfo Klasse von Android
string mac = "";
AndroidJavaClass jc = new AndroidJavaClass("android.net.wifi.WifiInfo");
mac = jc.Call<string>("getBSSID");
Ich füge auch android Erlaubnis wifi Zustand zum Lesen von modifing "AndroidManifest.xml" Datei an der Stelle "[Projekt] Standort \ Assets \ Plugins \ Android" mit der Code unter
Da diese Methode Editor nicht funktioniert, ich baue und führe dies auf Android Phone, aber keine Zeichenfolge zurückgegeben wird. Kann mir bitte jemand helfen?
Vielen Dank, es funktioniert jetzt – Lucas1805