我目前正在开发一个基于地理位置的Unity项目,并且想要使用不同的wifi信号强度来计算Android设备在已知建筑物中的位置。
为此,我需要列出手机周围可用的 wifi 热点,以及它们自己的信号强度。
C# 本身可以实现吗?或者 assetstore 中是否有可以做到这一点的东西?
我的搜索仅引导我获取手机当前连接的wifi热点的信号强度,而不是检测到的每个热点的信号...
获取 wifi 强度的旧方法是:
AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaObject wifiManager = activity.Call<AndroidJavaObject>("getSystemService", "wifi");
var wifiInfo = wifiManager.Call<AndroidJavaObject>("getConnectionInfo");
var rssi = wifiInfo.Call<int>("getRssi");
此代码在我的 Android 14 手机上仍然有效。 但是,在方法 public WifiInfo getConnectionInfo () 的文档中,有信息表明此方法在 API 级别 31 中已弃用。https://developer.android.com/reference/android/net/wifi/WifiManager#getConnectionInfo()。 并提出了获取此信息的新方法。但是 - 这里有一个问题 - 如何实现这种新方法,尤其是 C# 上该示例的回调?