【问题标题】:What's the best way to programmatically disable android wifi hotspot?以编程方式禁用 android wifi 热点的最佳方法是什么?
【发布时间】:2013-03-25 03:26:27
【问题描述】:

我创建了一个测试 wifi 热点应用。该应用程序本质上启用和禁用 android 平台的 wifi 热点功能(从 2.3 到 4.1 测试)。

我注意到应用程序存在两个问题,希望得到一些帮助。

1)如果热点已启用超过 30 分钟(平均时间),我将无法停止 wifi 热点。如果很长时间没有启动热点,我可以很好地停止热点。我使用以下代码停止:

    // Disable wifi hotspot
private static void stopAccessPoint() {
    try
    {
        Method[] wmMethods = wifi.getClass().getDeclaredMethods();

        for (Method method : wmMethods) {
            if (method.getName().equals("setWifiApEnabled")) {
                try {
                    method.invoke(wifi, null, false);
                } catch (IllegalArgumentException e) {
                    e.printStackTrace();
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                } catch (InvocationTargetException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    catch(Exception e)
    {
        Log.d(TAG, errorStoppingHotspotMessage);

    }

2) wifi 热点在长时间使用后失去与互联网的连接。我注意到在其他无线网络周围使用时它会更频繁地发生,所以我认为这可能是由于干扰造成的。

我可以在任何给定时间正常启动 wifi 热点,没有任何问题。所有研究都指向我已经用于禁用热点的上述代码。

你们中有人见过这些问题吗?考虑到问题发生所花费的时间,很难测试这些问题。

任何帮助将不胜感激。

【问题讨论】:

    标签: java android jvm-hotspot


    【解决方案1】:

    1) 你可能想改变你的 e.printStackTrace();在实际的 Logging 中,我使用相同的代码,无论等待多久,它都能正常工作。

    2) 注意到了同样的情况,但不确定它与哪个相关,但是如果有“恒定”流量,它永远不会下降。有时我必须禁用热点并快速重新启用它才能解决此问题,但有时我的数据计划也下降了......也许运营商不希望我们热点他们的数据计划?

    【讨论】:

      猜你喜欢
      • 2014-11-04
      • 1970-01-01
      • 2016-03-25
      • 1970-01-01
      • 1970-01-01
      • 2011-09-17
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      相关资源
      最近更新 更多