什么是以编程方式禁用android wifi热点的最佳方法?

时间:2013-03-25 03:26:28

标签: java android jvm-hotspot

我创建了一个测试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热点。所有研究都向我指出了我已经用于禁用热点的上述代码。

你们之前有没有人见过这些问题?考虑到问题发生所需的时间,很难测试问题。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

1)您可能想要更改e.printStackTrace();进入实际的日志记录,我使用相同的代码,无论我等多久都能正常工作。

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