You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python SL4A脚本WiFi扫描问题:无法将sl4a.result转为可遍历列表

解决SL4A WiFi扫描脚本的匹配与转换问题

看起来你的脚本遇到两个核心问题:对SL4A扫描结果的数据结构理解有误,以及异常处理逻辑掩盖了真实错误。让我一步步帮你修复:

1. 先搞懂wifiGetScanResults()的返回结构

Android().wifiGetScanResults()返回的不是字符串列表,而是字典对象的列表。每个字典包含WiFi网络的详细信息,比如ssid(网络名称)、bssid(MAC地址)、level(信号强度)等。你直接用"HOM" in i判断,其实是在检查字符串是否存在于字典对象中,这永远不会成立,所以才会触发Nothing found。

2. 修改匹配逻辑,正确提取SSID

我们需要遍历每个字典,取出ssid字段再做匹配,同时直接记录索引(比用index()更高效,还能避免重复SSID的索引错误):

from sl4a import *
from time import sleep

a = Android()

def find_net():
    try:
        print("Scanning")
        # 先检查WiFi是否开启,避免扫描失败
        if not a.wifiIsEnabled().result:
            print("Enabling WiFi first...")
            a.wifiEnable(True)
            sleep(2)
        
        a.wifiLockAcquireFull()
        a.wifiStartScan()
        sleep(5)
        print("Scan completed")
        # 获取扫描结果,本身就是可遍历的列表,无需额外转list
        aps = a.wifiGetScanResults()
        print(f"Got {len(aps)} total results")
        
        # 遍历列表,同时记录索引和对应的SSID
        matched_indices = []
        for idx, ap in enumerate(aps):
            # 用get方法避免KeyError(部分网络可能无SSID)
            ssid = ap.get('ssid', '')
            if "HOM" in ssid:
                matched_indices.append(idx)
                # 可选:打印匹配到的完整SSID,方便验证
                print(f"Found match at index {idx}: {ssid}")
        
        if not matched_indices:
            print("Nothing found")
            return []
        return matched_indices
    
    except Exception as e:
        # 打印具体异常信息,方便调试(比如权限不足、硬件问题)
        print(f"Scan Failed: {str(e)}")
        return []

print(find_net())

3. 修复异常处理的问题

你原来的代码外层try-except捕获了所有异常,包括内层逻辑的错误,导致你看不到真实的问题原因。现在我们把具体异常信息打印出来,方便排查(比如WiFi权限未授予、设备硬件限制等)。

4. 额外优化建议

  • 不需要用list(a.wifiGetScanResults()),因为wifiGetScanResults()本身返回的就是可遍历的列表对象。
  • 使用enumerate()直接获取索引和元素,比用index()更高效——尤其是当有多个相同SSID的网络时,index()只会返回第一个匹配项的索引,而enumerate()能正确记录所有匹配的索引。
  • 添加WiFi状态检查,避免因为WiFi未开启导致的扫描失败。

测试修改后的脚本,应该能正确找到包含"HOM"的WiFi网络索引了。

内容的提问来源于stack exchange,提问作者user9198016

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:43:13