我找到了可以更改和不能更改的系统设置列表(安全设置),但启用/禁用Wifi-Direct (ICS)都不在这两个列表中。如何在启动应用程序时自动打开Wi-Fi Direct?
发布于 2012-07-21 01:11:18
JB引入了并发的概念,这意味着只要wifi开启,应用程序就不必直接打开wifi。
对于ICS,最好将用户带到无线设置,以允许他打开它。
发布于 2012-07-17 05:45:42
不幸的是,没有公开的方法来实现这一点。ICS和JB中的Settings应用程序都使用管理器类上的隐藏方法来将服务切换为启用/禁用。
在ICS中使用
所以这是可能的,因为这些类上确实存在这些方法。然而,由于这种差异,您必须创建特定于版本的反射代码,这些代码几乎肯定会在以后的版本中中断,以便直接从您的应用程序提供功能。
一个更好的解决方案是简单地检查服务是否启用,并向用户显示一个对话框,将用户直接带到无线设置页面以启用WiFi直接,如果他们选择这样做的话。
发布于 2012-07-17 05:16:17
您尝试过使用WiFi manager吗?你应该能够像这样在一个活动中切换它:
WifiManager wifi = (WifiManager)getSystemService(Context.WIFI_SERVICE);
if (!wifi.isWifiEnabled()){
wifi.setWifiEnabled(true);
}这应该会打开WIFI,但不能保证有Wifi连接!您还可以使用WifiManager通过以下命令查找WifiInfo
WifiInfo wifiInfo = wifi.getConnectionInfo();或使用ping命令ping接入点
if (wifi.pingSupplicant()){
//at least connected to a network
}https://stackoverflow.com/questions/11512577
复制相似问题