草庐IT

Android Wi-Fi 扫描 : Filter printers from ScanResult

coder 2023-11-21 原文

我正在做一个项目,需要扫描公共(public) Wi-Fi 接入点。

目前,我正在像这样过滤 ScanResult:

for (ScanResult scanResult : wifiList) {
  if (!(scanResult.capabilities.contains("WEP") || 
        scanResult.capabilities.contains("WPA") || 
        scanResult.capabilities.contains("WPA2"))) {

              openWifiList.add(scanResult);    

  }
}

它工作正常,除了我还有附近的打印机。

扫描时,手机未连接任何网络。

我本以为我得到的列表与 Android 上 Wi-Fi 设置中显示的 Wi-Fi 连接列表相同。但是在 Wi-Fi 设置中从来没有显示过打印机。

所以对于 1) 我认为打印机出现在 ScanResult 列表中很奇怪,打印机真的应该以这种方式可见吗


更新:并不是所有的 Wi-Fi 打印机都是可见的,我得到了一些关于这一点的提示,似乎出现的打印机确实有一个特殊的功能,例如HP 打印机支持 HP Wireless Direct 功能(参见例如 https://h30434.www3.hp.com/t5/Inkjet-Printing/Printer-SSID-appearing-on-my-wi-fi-list/td-p/1705073https://support.hp.com/rs-en/document/c04577030)。


和 2) 有什么方法可以检查 ScanResult 是否属于打印机

到目前为止,我只能考虑过滤常见的 SSID 名称,但这不会非常有效或可靠。

感谢您的任何建议。

最佳答案

1) 并非所有打印机都支持 WiFi Direct protocol , HP 支持此功能以及您提到的他们的专有协议(protocol) (HP Wireless Direct),但如果没有 HP 软件,您的设备可能不支持它。

了解有关从 Android 连接到 WiFi Direct 协议(protocol)的更多信息 here .

2) WiFi direct discovery返回 String fullDomain,如果它包含 _ipp - 这很可能是一台打印机。

关于Android Wi-Fi 扫描 : Filter printers from ScanResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45054867/

有关Android Wi-Fi 扫描 : Filter printers from ScanResult的更多相关文章

  1. Ruby 扫描/获取直到 EOF - 2

    我想扫描未知数量的行,直到扫描完所有行。我如何在ruby中做到这一点?例如:putreturnsbetweenparagraphsforlinebreakadd2spacesatend_italic_or**bold**输入不是来自"file",而是通过STDIN。 最佳答案 在ruby​​中有很多方法可以做到这一点。大多数情况下,您希望一次处理一行,例如,您可以使用whileline=getsend或STDIN.each_linedo|line|end或者通过使用-n开关运行ruby​​,例如,这意味着上述循环之一(在每次迭代中将

  2. ruby-on-rails - Rails/Heroku - 如何对上传的文件进行反病毒扫描? - 2

    如何扫描上传文件中的病毒、木马等?只是想阻止一些用户上传一些讨厌的东西。我正在使用Heroku和AmazonS3。 最佳答案 Checkoutthis它支持REST/JSON防病毒网络服务。 关于ruby-on-rails-Rails/Heroku-如何对上传的文件进行反病毒扫描?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/9640516/

  3. ruby 正则表达式扫描与 =~ - 2

    Ruby(1.9.3)文档似乎暗示scan等同于=~除了scan返回多个匹配项,而=~仅返回第一个匹配项,并且scan返回匹配数据,而=~返回索引。但是,在下面的示例中,这两种方法似乎对相同的字符串和表达式返回不同的结果。这是为什么?1.9.3p0:002>str="PerlandPython-thetwolanguages"=>"PerlandPython-thetwolanguages"1.9.3p0:008>exp=/P(erl|ython)/=>/P(erl|ython)/1.9.3p0:009>str=~exp=>01.9.3p0:010>str.scanexp=>[["er

  4. 信息收集(Web目录扫描) - 2

    一、扫描原因        (1)寻找到网站后台管理        (2)寻找未授权界面        (3)寻找网站更多隐藏信息        (4)通过使用目录扫描可以让我们发现这个网站存在多少个目录,多少个页面,探索出网站的整体结构。通过目录扫描我们还能扫描敏感文件,后台文件,数据库文件,和信息泄漏文件等等。二、方法1、robots.txt        (1)Robots协议(RobotsExclusionProtocol)“网络爬虫排除标准”,网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。        (2)同时也记录网站所具有基本的目录。        

  5. ruby - 使用\d 扫描字符串中的 Unicode 数字 - 2

    根据theOnigurumadocumentation,\d字符类型匹配:decimaldigitcharUnicode:General_Category--Decimal_Number但是,在包含所有Decimal_Number字符的字符串中扫描\d会导致仅匹配拉丁文0-9数字:#encoding:utf-8require'open-uri'html=open("http://www.fileformat.info/info/unicode/category/Nd/list.htm").readdigits=html.scan(/U\+([\da-f]{4})/i).flatten.

  6. ruby - 在 ruby​​ 中获取字符串扫描结果的索引 - 2

    我想获取索引以及扫描结果"abab".scan(/a/)我不仅想拥有=>["a","a"]还有那些比赛的索引[1,3]有什么建议吗? 最佳答案 试试这个:res=[]"abab".scan(/a/)do|c|res[["a",0],["a",2]] 关于ruby-在ruby​​中获取字符串扫描结果的索引,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3520208/

  7. DiFi: A Go-as-You-Pay Wi-Fi Access System 精读笔记(三) - 2

    IV.SYSTEMIMPLEMENTATIONWeadoptmodulardesignfollowingtheintegrationofblockchain.Itbringsmoreflexibilitybyseparatingtheimplementationofdifferentfunctionalities,sowecouldleveragetheadvantagesoftheblockchain-basedsmartcontractwhilereducingoverhead.Figure3illustrateshowdifferentmodulesareinvolvedintheint

  8. ruby - Ruby 字符串上的扫描和匹配有什么区别 - 2

    我是Ruby的新手,一直使用String.scan来搜索数字的第一次出现。返回值在嵌套数组中有点奇怪,但我只是去[0][0]获取我想要的值。(我确定它有它的用途,只是我还没有使用它。)我刚刚发现有一个String.match方法。而且似乎更方便,因为返回的数组不是嵌套的。这是两者的一个例子,第一个是扫描:>>'a1-nightstay'.scan(/(a)?(\d*)[-]night/i).to_a=>[["a","1"]]然后是匹配>>'a1-nightstay'.match(/(a)?(\d*)[-]night/i).to_a=>["a1-night","a","1"]我已经检查了

  9. javascript - 网站脚本注入(inject)扫描 - 2

    关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭4年前。Improvethisquestion有没有人知道任何脚本注入(inject)扫描程序能够检测您的网站是否已被入侵(即被注入(inject)的javascript不应该存在)?更新:找到了我要找的东西-http://sucuri.net/

  10. javascript - 使用 Opera Mobile 10 扫描输入 - 2

    我们为一个PDA应用程序选择了OperaMobile,一切都很顺利,直到我们遇到关于将扫描输入到其中一个文本字段的问题。解决此问题的一般方法是在执行扫描操作时将一个文本框设置为具有焦点。不幸的是,Opera有意无意地不支持这一点。当您进入屏幕时焦点无处可去,并且无法明确设置它。接下来最糟糕的是,您也无法检测到按键事件,这使得几乎不可能从扫描操作中获取输入事件。我不知道为什么Opera,最受好评的移动浏览器之一,不支持这个。这些是同一个问题被一遍又一遍问的地方,http://dev.opera.com/forums/topic/255066http://dev.opera.com/for

随机推荐