안드로이드 및 iOS 전화의 Unity Game App에서 BSSID (연결하는 무선 라우터의 MAC 주소, 내 장치 MAC 주소가 아님)를 얻으려면 어떻게해야합니까?wifi의 BSSID를 얻는 방법 Unity에 연결 중입니다 (C#)?
나는이 방법을 시도했지만 아무도 작동하지 않습니다. 게임 장면에 인쇄하여 결과를 확인합니다. 도와주세요
* 방법 1 : *이 코드는 제대로 작동하고 올바른 BSSID 정보를 얻지 만 편집기에서 작동합니다. 작동하지 않으면 안드로이드 응용 프로그램에 빌드 할 때 반환 문자열은 아무 것도 아닙니다 (null이 아니지만 값이 비어 있음).).
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 : 나는 유니티 문서의 안드로이드 전화에 BSSID를 얻기 위해 안드로이드 함수를 호출 할 AndroidJavaClass을 사용하고 있습니다. 유니티에서 AndroidJavaClass 및string mac = "";
AndroidJavaClass jc = new AndroidJavaClass("android.net.wifi.WifiInfo");
mac = jc.Call<string>("getBSSID");
안드로이드
의 WifiInfo 클래스에 대한 자세한 정보는 또한으로 "AndroidManifest.xml에"위치에 파일 "[프로젝트 위치] \ 자산 \ 플러그인 \ 안드로이드를"modifing에 의해 무선 랜 상태를 읽기 위해 안드로이드 권한을 추가 아래 코드<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
이 방법은 Editor에서 작동하지 않으므로 Android Phone에서 빌드하고 실행하지만 문자열은 반환되지 않습니다. 누구든지 제발 도와 줄 수 있어요.
대단히 감사합니다. – Lucas1805