繁体   English   中英

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

[英]What's the best way to programmatically disable android wifi 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)您可能想要更改e.printStackTrace(); 在实际的日志记录中,我使用相同的代码,无论我等待多长时间,它都可以正常工作。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM