在Android 4.2中以编程方式切换wifi网络共享

时间:2013-04-11 16:51:28

标签: android

有没有可能在Android 4.2中切换wifi网络共享?我尝试了this,但似乎使用Android 4.2无法正常工作!

提前致谢!

编辑:它工作我只忘了设置正确的权限。还有一种方法可以检查它是否已经启用,以便我可以将它用作切换?

2 个答案:

答案 0 :(得分:1)

您应该可以在Android 4.2中执行此操作,确保您拥有该权限

android.permission.CHANGE_WIFI_STATE

除非您发布代码,否则我们无法帮助您。

我相信这可以帮助您检查网络共享是否有效

WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
Method[] wmMethods = wifi.getClass().getDeclaredMethods();
for(Method method: wmMethods){
  if(method.getName().equals("isWifiApEnabled")) {

try {
  method.invoke(wifi);
} catch (IllegalArgumentException e) {
  e.printStackTrace();
} catch (IllegalAccessException e) {
  e.printStackTrace();
} catch (InvocationTargetException e) {
  e.printStackTrace();
    }
  }
}

答案 1 :(得分:1)

我自己做了切换工作! 这是代码:

 WifiManager wifiManager = (WifiManager) context.getSystemService(context.WIFI_SERVICE);

            Method[] methods = wifiManager.getClass().getDeclaredMethods();
            boolean enabled=false;
            for (Method method : methods) {
                if (method.getName().equals("isWifiApEnabled")) {
                    try {
                       enabled = (Boolean) method.invoke(wifiManager);
                    } catch (Exception ex) {
                    }
                    break;
                }
            }
            for (Method method : methods) {
                if (method.getName().equals("setWifiApEnabled")) {
                    try {
                        method.invoke(wifiManager, null, !enabled);
                    } catch (Exception ex) {
                    }
                    break;
                }
            }