【问题标题】:Unity : Detect if mobile is on Tether connectionUnity:检测手机是否在 Tether 连接上
【发布时间】:2017-06-21 19:08:15
【问题描述】:

小问题:我想检查一下个人热点功能是否开启

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

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

你知道吗?

谢谢大家!

ps : 我不需要知道我是否有互联网连接,只要 tether wifi 工作就可以了

【问题讨论】:

  • Tether/hotspot 是“将我的手机信号中继到其他设备的 wifi 信号”。它实际上与单元连接没有什么不同。您可以在笔记本电脑上使用以太网和 wifi 连接做同样的事情:广播笔记本电脑转发到以太网连接的 wifi 信号,但笔记本电脑本身仍在使用以太网。

标签: android unity3d mobile


【解决方案1】:

所以您想检查个人热点功能是否已打开?这只允许您确定其他设备是否可以使用您的设备连接到互联网。要在设备上的 Android 应用程序中执行此操作,您将使用 WiFiManager 类,如 here 所示。

您想知道某个东西是否真的连接到热点吗?如果是这样,您可以查看this source(特别是在getClientList 方法中)来检查连接的客户端。

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

【讨论】:

  • 我正在使用 Unity,所以我更多地寻找 Unity 的答案,但我会使用 WifiManager Android 类进行更多调查,也许我可以设法找到一些东西
  • 我只是想知道我是否处于热点模式或注意(我不需要了解互联网连接)是的,我做了一个 Android 客户端,Windows Server 连接,它工作得很好,使用 wifi 或热点。但我只想管理界面告诉用户它已成功配置热点并正在等待服务器。如果您需要有关我正在做的产品的更多信息,请在此处成为封闭 alpha 的一部分:plus.google.com/communities/114837645136205078862
  • “所以你想检查一下个人热点功能是否开启?”正是我需要的:)
【解决方案2】:

感谢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;
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-28
    • 2020-11-12
    • 2019-04-09
    • 1970-01-01
    • 2014-11-06
    • 1970-01-01
    相关资源
    最近更新 更多