AndroidおよびiOS端末のUnity Game Appで、BSSID(デバイスのMACアドレスではなく、接続しているWi-FiルーターのMACアドレス)を取得するにはどうすればよいですか?wifiのBSSIDを取得する方法Unityに接続しようとしています(C#)?
私はこれらの方法を試しましたが、それらのどれも動作していません。ゲームの場面に印刷して結果を確認します。方法1 *
を助けてください:このコードは正常に動作し、正しいBSSID情報を取得するが、それは唯一のエディタ上で動作しています、私はそれが動作していないのAndroidアプリケーションにそれを構築する場合、返される文字列は何も(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:私はユニティ文書のようにAndroid携帯上のBSSIDを取得するにはAndroidの機能を呼び出すためにAndroidJavaClassを使用しています。ユニティでAndroidJavaClassとAndroid
の WifiInfoクラスstring mac = "";
AndroidJavaClass jc = new AndroidJavaClass("android.net.wifi.WifiInfo");
mac = jc.Call<string>("getBSSID");
についての詳細情報私はまたして、「[プロジェクトの場所] \資産\プラグイン\ Androidの」場所に「のAndroidManifest.xml」ファイルを・修正により、無線LANの状態を読み取るためのアンドロイド権限を追加以下のコード
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
このメソッドはエディタでは機能しないため、Android Phoneでビルドして実行しますが、文字列は返されません。誰でも私を助けてくれますか?
ありがとうございます – Lucas1805