none
请问:Win8 RT开发,可以用Native Wifi API吗? RRS feed

  • 问题

  • 该API用来实现windows的无线客户端的网络参数配置(WlanSetProfile),连接指定的ap,断开连接和获得其他关于无线网络的信息(ssid,rssi等)。

    有WlanOpenHandle、WlanCloseHandle、WlanQueryInterface、WlanSetProfile 等函数。

    如果可以使用,在Visual Studio Express 2012 for Windows 8里面要怎么设置,才能识别编译以上的函数?

    2012年12月12日 8:05

答案

全部回复

  • 如果Native Wifi API不可用,那么用Windows 8 Mobile Broadband API: http://msdn.microsoft.com/zh-CN/library/windows/apps/windows.networking.networkoperators.provisioningagent 可以实现配置wifi的自动连接属性吗?
    2012年12月12日 9:32
  • Hi,

    不支持,WinRT支持的API你可以在这里查到:

    http://msdn.microsoft.com/library/windows/apps/br211369

    你说的问题可以参考这个sample:

    http://code.msdn.microsoft.com/windowsapps/Wi-Fi-hotspot-authenticatio-943569eb


    Aaron
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2012年12月12日 11:34
    版主
  • 谢谢回答。
    2012年12月13日 1:22
  • 谢谢刚才的回答。

    按说回答到这个地步(指出sample所在),已经是到位了,不过现在我试运行这个sample出现了一个故障,初学者不知道问题所在,请Aaron版主帮忙看看:

    下载这个sample,调试运行的时候,点击“Provision”按钮,进入Initialization.xaml.cpp里面的ProvisionButton_Click过程,代码执行到

    return provisioningAgent->ProvisionFromXmlDocumentAsync(provisioningXml);的时候,还是正常的;

    按F5到达auto result = resultTask.get();的时候,再按F10单步运行,就报错了,提示:

    First-chance exception at 0x749D277C in HotspotAuthenticationApp.exe: Microsoft C++ exception: Platform::COMException ^ at memory location 0x02E8B3A0. HRESULT:0x8217000E 无法找到与此错误代码关联的文本。

    WinRT 信息:XML 中缺少签名

    如有适用于此异常的处理程序,该程序便可安全地继续运行。

    请问,该怎么配置,让这个sample能正常运行?

    2012年12月13日 3:10
  • 知道问题所在了。需要对sample的ProvisioningData.xml文件做点修改,这个文件的注释也说明了这一点。

    提示“XML 中缺少签名”,是因为没有把开发者账号的CarrierId等信息,写入ProvisioningData.xml文件。

    修改后运行不报这个错误了,现在的提示是“WinRT 信息:XML 与设置架构不匹配”。

    再看看还要改哪些地方,如果版主知道请指点一下。

    2012年12月13日 5:30
  • 请问,ProvisioningData.xml文件的格式,是要遵循C:\windows\schemas\provisioning\provisioning_wwan_v1.xsd文件的描述吗?

    我参照这个文件改了,好像还是不行。

    2012年12月13日 9:36
  • Hi,

    抱歉我回复迟了。

    你可以参考:

    http://social.msdn.microsoft.com/Forums/en-US/winappswithnativecode/thread/b1b43b4a-39dd-4ef8-8d5c-dc2381c9661c

    里面有详细步骤。


    Aaron
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2012年12月13日 10:28
    版主
  • 之前在学习时问过, 这个Bob_Bao有很详细的解说:

    http://social.msdn.microsoft.com/forums/zh-CHS/winstoreappzhcn/thread/f658efda-b10f-40b0-becd-f4fe169d35ba

    主要就是要生成一个证书给xml进行签名操作.

    2012年12月14日 6:21
  • 谢谢I'chTheI的回答。

    照着Bob的解答把xml文件签名了,运行结果还是报一样的错:

    HRESULT:0x82170002       WinRT 信息:XML 与设置架构不匹配

    查询网络上对错误值的描述

    0x82170001 (PROVCORE_E_XML_MALFORMED): XML is not well-formed
    0x82170002 (PROVCORE_E_XML_INVALID): XML does not match the provisioning schema
    0x82170003 (PROVCORE_E_XML_SIGNATURE_INVALID): XML signature is invalid
    0x82170004 (PROVCORE_E_XML_SIGNATURE_UNTRUSTED): Signer certificate is not chained to a trusted root CA
    0x82170005 (PROVCORE_E_XML_DIGEST_INVALID): XML has been tampered with
    0x82170006 (PROVCORE_E_XML_SIGNER_UNTRUSTED): Signer certificate is not trusted for provisioning
    0x82170007 (PROVCORE_E_NO_LEAF_CERT): No leaf certificate found in XML signature
    0x82170008 (PROVCORE_E_INTERFACE_NOT_PROVISIONED): Interface is not provisioned

    0x82170002 是说xml文件不符合规范,但我用的xml是simple里面的,只修改了一些值。

    ------------------------------------

    请问I'chTheI,你以前学习这个simple用的项目文件还在吗?如果找得到的话,把那个xml文件发给zhangshiluan@ruijie.com.cn一下,谢谢了

    2012年12月14日 9:10
  • 昨天在I'chTheI的帮助之下,把这个simple运行起来了。

    这个xml的<Global>里面的参数不要改,只要改<SSIDConfig>里面的ssid参数,然后把xml按照上面I'chTheI回复的、Bob_Bao的方法签名一下,整个工程就可以运行了。

    ------------------

    不过,这样做的实际意义太少,xml签名,意味着xml内容不能变,也就是说ssid都写死了,应用发布给别人,别人也不能用。

    所以会接着研究,以后有进展了,另开一帖说明。这个帖子太长了。

    2012年12月18日 1:41