Unity Android 列出 wifi 网络和信号强度

问题描述 投票:0回答:1

我目前正在开发一个基于地理位置的Unity项目,并且想要使用不同的wifi信号强度来计算Android设备在已知建筑物中的位置。

为此,我需要列出手机周围可用的 wifi 热点,以及它们自己的信号强度。

C# 本身可以实现吗?或者 assetstore 中是否有可以做到这一点的东西?

我的搜索仅引导我获取手机当前连接的wifi热点的信号强度,而不是检测到的每个热点的信号...

c# android unity-game-engine android-wifi
1个回答
0
投票

获取 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# 上该示例的回调?

© www.soinside.com 2019 - 2024. All rights reserved.