Comment puis-je obtenir BSSID (adresse MAC du routeur Wi-Fi auquel je me connecte, pas mon adresse MAC de l'appareil) dans mon application de jeu Unity sur téléphone Android et iOS?Comment obtenir BSSID de wifi je me connecte à dans Unity (C#)?
J'ai essayé cette méthode mais aucune d'entre elles ne fonctionne. Je vérifie le résultat en l'imprimant sur la scène du jeu. S'il vous plaît aider
* Méthode 1: Ce travail Code fin et obtenir les informations BSSID correct mais il fonctionne uniquement sur la rédaction, quand je construis à Android App il ne fonctionne pas, la chaîne de retour est rien (non nulle, mais la valeur vide).
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;
}
* Méthode 2: J'utilise AndroidJavaClass d'appeler une fonction android pour obtenir BSSID sur Android Phone comme dans le document Unity. En savoir plus sur AndroidJavaClass dans l'unité et WifiInfo classe d'Android
string mac = "";
AndroidJavaClass jc = new AndroidJavaClass("android.net.wifi.WifiInfo");
mac = jc.Call<string>("getBSSID");
J'ajouter aussi la permission Android pour lire l'état wifi par modifing fichier "AndroidManifest.xml" à l'endroit "[Emplacement du projet] \ Assets \ Plugins \ Android" avec le code ci-dessous
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
Depuis cette méthode ne fonctionne pas sur l'éditeur, je compile et exécute ceci sur Android Phone, mais aucune chaîne n'est de retour. Quelqu'un peut-il m'aider s'il-vous-plaît.
Merci beaucoup ça marche maintenant – Lucas1805