首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动更改Wi-Fi Direct设置

自动更改Wi-Fi Direct设置
EN

Stack Overflow用户
提问于 2012-07-17 05:06:38
回答 3查看 4.2K关注 0票数 1

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-21 01:11:18

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

对于ICS,最好将用户带到无线设置,以允许他打开它。

票数 1
EN

Stack Overflow用户

发布于 2012-07-17 05:45:42

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

在ICS中使用

  • ,使用WifiP2PManager.enableP2P()和WifiP2PManager.disableP2P(),这两个方法都是隐藏的。在JB中使用
  • ,使用NsdManager.setEnabled()。

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

一个更好的解决方案是简单地检查服务是否启用,并向用户显示一个对话框,将用户直接带到无线设置页面以启用WiFi直接,如果他们选择这样做的话。

票数 3
EN

Stack Overflow用户

发布于 2012-07-17 05:16:17

您尝试过使用WiFi manager吗?你应该能够像这样在一个活动中切换它:

代码语言:javascript
复制
WifiManager wifi = (WifiManager)getSystemService(Context.WIFI_SERVICE);
if (!wifi.isWifiEnabled()){
  wifi.setWifiEnabled(true);
}

这应该会打开WIFI,但不能保证有Wifi连接!您还可以使用WifiManager通过以下命令查找WifiInfo

代码语言:javascript
复制
WifiInfo wifiInfo = wifi.getConnectionInfo();

或使用ping命令ping接入点

代码语言:javascript
复制
if (wifi.pingSupplicant()){
  //at least connected to a network
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11512577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档