Setting-Wifi

1、WIFI设备是个啥?

    WIFI是个啥?请移步至百度百科

  2、WIFI有哪些状态?

    在Android的官方文档中定义了如下五种状态:

    • WIFI_STATE_DISABLED   WIFI网卡不可用 
    • WIFI_STATE_DISABLING  WIFI网卡正在关闭 
    • WIFI_STATE_ENABLED     WIFI网卡可用 
    • WIFI_STATE_ENABLING    WIFI网卡正在打开 
    • WIFI_STATE_UNKNOWN    WIFI网卡状态不可知

  3、如何操作WIFI?

    要操作WIFI设备,就需要使用Context.getSystemService(Context.WIFI_SERVICE)来获取WifiManager对象,并通过这个对象来管理我们的WIFI设备。

    • addNetwork(WifiConfiguration config) 添加一个config描述的WIFI网络,默认情况下,这个WIFI网络是DISABLE状态的。
    • calculateSignalLevel(int rssi , int numLevels) 计算信号的等级
    • compareSignalLevel(int rssiA, int rssiB) 对比网络A和网络B的信号强度
    • createWifiLock(int lockType, String tag) 创建一个WIFI 锁,锁定当前的WIFI连接
    • disableNetwork(int netId) 让一个网络连接失效
    • disconnect() 断开当前的WIFI连接
    • enableNetwork(int netId, Boolean disableOthers) 连接netId所指的WIFI网络,并是其他的网络都被禁用
    • getConfiguredNetworks() 获取网络连接的状态
    • getConnectionInfo() 获取当前连接的信息
    • getDhcpInfo() 获取DHCP 的信息
    • getScanResulats() 获取扫描测试的结果
    • getWifiState() 获取当前WIFI设备的状态
    • isWifiEnabled() 判断WIFI设备是否打开
    • pingSupplicant() ping操作,和PC的ping操作相同作用
    • ressociate() 重新连接WIFI网络,即使该网络是已经被连接上的
    • reconnect() 重新连接一个未连接上的WIFI网络
    • removeNetwork() 移除某一个网络
    • saveConfiguration() 保留一个配置信息
    • setWifiEnabled() 让一个连接有效
    • startScan() 开始扫描
    • updateNetwork(WifiConfiguration config) 更新一个网络连接

  4、如何得到周围的WIFI热点列表?

     如果要想得到周围的WIFI热点列表,可以使用WifiManager.getScanResults()返回一个ScanResult列表,ScanResult对象中,包含了以下几个属性:

    • BSSID 接入点的地址
    • SSID 网络的名字,唯一区别WIFI网络的名字
    • Capabilities 网络接入的性能
    • Frequency 当前WIFI设备附近热点的频率(MHz)
    • Level 所发现的WIFI网络信号强度

  5、如何连接上我的WIFI?

复制代码
 1 /**
2 * 根据ID值来自动连接WIFI网络
3 * @param index ID值
4 */

5 public void ConnectWifiBySSID(int index) {
6 // 索引大于配置好的网络索引返回
7 if (index > mWifiConfiguration.size()) {

8 return;
9 }
10 // 连接配置好的指定ID的网络
11 mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId,true);

12 }
13 /**
14 * 根据WifiConfiguration对象来自动连接WIFI网络
15 * @param wcg WifiConfiguration对象
16 */

17 public void ConnectWifiByConfig(WifiConfiguration wifiConfiguration) {
18 int wcgID = mWifiManager.addNetwork(wifiConfiguration);
19 mWifiManager.enableNetwork(wcgID, true);
20 }
复制代码

    没什么好解释的,可以直接看上面的代码段。

  6、如何查看已经连接上的WIFI信息?

    在Android的SDK中为我们提供了一个叫做WifiInfo的对象,这个对象可以通过WifiManager.getConnectionInfo()来获取。WifiInfo中包含了当前连接中的相关信息。

    • getBSSID()  获取BSSID属性
    • getDetailedStateOf()  获取客户端的连通性
    • getHiddenSSID()  获取SSID 是否被隐藏
    • getIpAddress()  获取IP 地址
    • getLinkSpeed()  获取连接的速度
    • getMacAddress()  获取Mac 地址
    • getRssi()  获取802.11n 网络的信号
    • getSSID()  获取SSID
    • getSupplicanState()  获取具体客户端状态的信息
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 要在Appium中设置WiFi,可以使用以下命令来开启或关闭WiFi。开启WiFi的命令是:adb shell am broadcast -a io.appium.settings.wifi -n io.appium.settings/.receivers.WiFiConnectionSettingReceiver --es setstatus enable,关闭WiFi的命令是:adb shell am broadcast -a io.appium.settings.wifi -n io.appium.settings/.receivers.WiFiConnectionSettingReceiver --es setstatus disable。请注意,这些命令必须在启动driver之前执行,否则可能会导致目标app出现ANR错误。此外,需要注意不同厂商可能会有限制,所以在特定设备上的效果需要进行确认。\[1\] 另外,还有一种思路是通过Appium UI操作来开启或关闭WiFi。首先,使用以下命令打开WiFi页面:adb shell am start -a android.intent.action.MAIN -n com.android.settings/.wifi.WifiSettings。然后,根据当前网络情况进行判断,如果可以ping通百度,则通过UI操作关闭WiFi,再打开WiFi;如果无法ping通,则通过UI操作打开WiFi。这种方法需要进行验证。\[2\] 还有一种思路是在10.0系统的产品开发中,通过修改默认设置来保证升级成功。具体操作是在Settings中的WiFi详情页,找到隐私选项,并将默认选中设备的MAC地址的功能进行分析和实现。这种方法适用于需要固定使用本机MAC地址的情况。\[3\] #### 引用[.reference_title] - *1* *2* [【Appium踩坑】使用Appium Setting开启wifi or 关闭wifi,弹系统wifi权限弹窗问题](https://blog.csdn.net/YUICUI/article/details/123778853)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Android Settings 中wifi详情页 隐私默认选中设备mac](https://blog.csdn.net/baidu_41666295/article/details/122377557)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值