自动更改Wi-Fi Direct设置

时间:2012-07-16 21:06:38

标签: android settings wifi-direct

我找到了我可以更改的系统设置列表以及我不能更改的系统设置列表(安全设置),但是启用/禁用Wifi-Direct(ICS)都不在其中。 如何在启动应用程序时自动启用Wi-Fi Direct?

3 个答案:

答案 0 :(得分:3)

不幸的是,没有公开的方法来实现这一目标。 ICS和JB中的Settings应用程序使用管理器类上的隐藏方法将服务切换为启用/禁用。

  • 在ICS中,使用了WifiP2PManager.enableP2P()和WifiP2PManager.disableP2P()两种隐藏方法。
  • 在JB中,使用NsdManager.setEnabled()。

所以有可能,因为这些方法确实存在。但是,由于存在这种差异,您必须创建非常特定于版本的反射代码,这些代码几乎肯定会在以后的版本中出现,以便直接从您的应用程序提供功能。

更好的解决方案只是检查服务是否已启用,并向用户显示一个对话框,直接将他们带到“无线设置”页面,以便他们自己启用WiFi Direct。

答案 1 :(得分:1)

JB引入了并发概念,这意味着只要wifi打开,应用程序就不必直接打开wifi。

对于ICS,最好让用户进行无线设置以允许他打开它。

答案 2 :(得分:-1)

你试过使用WiFi manager吗? 您应该能够在Activity中进行如下切换:

WifiManager wifi = (WifiManager)getSystemService(Context.WIFI_SERVICE);
if (!wifi.isWifiEnabled()){
  wifi.setWifiEnabled(true);
}

这应该打开WIFI,但不保证一个人有Wifi连接!您也可以使用WifiManager通过

查找WifiInfo
WifiInfo wifiInfo = wifi.getConnectionInfo();

或使用

ping访问点
if (wifi.pingSupplicant()){
  //at least connected to a network
}