Unity:检测移动设备是否处于Tether连接状态

时间:2017-06-19 14:16:19

标签: android unity3d mobile

简短问题:我想检查个人热点功能是否已开启

我目前正在构建客户端/服务器应用程序。我想知道我的手机(例如Android)是否已激活系绳连接(个人热点),因为我的服务器可以连接到它。

由于这个答案Unity check internet connection availability,我找到了如何检测wifi连接但是这并没有检测到我是否正在使用系绳连接。

你知道吗?

谢谢大家!

ps:我不需要知道我是否有互联网连接,只需要连接无线网络

2 个答案:

答案 0 :(得分:1)

因此,您要检查个人热点功能是否已打开?这样只会让您确定其他设备是否可以使用您的设备连接到互联网。要在设备上的Android应用中执行此操作,您可以使用显示为hereWiFiManager类。

您想知道某些内容是否实际连接到热点?如果是这样,您可以查看this source(特别是getClientList方法)以检查已连接的客户端。

你提到了一台服务器。您是否尝试在台式机/笔记本电脑上运行服务器,然后将其连接到设备上的个人热点,然后将移动应用程序连接到桌面上的某个服务器?如果是这样,您还需要考虑其他事项。

答案 1 :(得分:0)

感谢wottle链接和帮助,我设法找到解决方案

 public bool isWifiApEnabled()
    {
        using (AndroidJavaObject activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity"))
        {
            try
            {
                using (var wifiManager = activity.Call<AndroidJavaObject>("getSystemService", "wifi"))
                {
                    return wifiManager.Call<bool>("isWifiApEnabled");
                }
            }
            catch (System.Exception e)
            {

            }
        }
        return false;
    }