如何在Android和iOS手機的Unity Game App中獲得BSSID(我連接的無線路由器的MAC地址,而不是我的設備MAC地址)?如何獲得我在Unity(C#)中連接的無線網絡的BSSID?
我已經嘗試過這些方法,但都沒有工作。我通過將它打印在遊戲場景中來檢查結果。請幫助
*方法1:此代碼做工精細,並得到正確的BSSID信息,但它只是在編輯器中,在工作的時候它建於Android應用它不工作,返回的字符串是什麼(不空,但空值)。
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;
}
*方法2:我使用AndroidJavaClass調用一個機器人的功能,在Android手機獲得BSSID作爲統一文件內。關於統一AndroidJavaClass和WifiInfo類的Android
string mac = "";
AndroidJavaClass jc = new AndroidJavaClass("android.net.wifi.WifiInfo");
mac = jc.Call<string>("getBSSID");
的更多信息我也加入Android的許可,通過對矯正在位置「的AndroidManifest.xml」文件「[項目位置] \資產\插件\ Android的」閱讀與wifi的狀態下面的代碼
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
由於此方法不適用於編輯器,我構建並運行此Android手機上,但沒有字符串返回。任何人都可以幫助我。
非常感謝你現在正在工作 – Lucas1805