Win10 IoT + RPI3 WiFiAdapter выдает отказ в доступе

Попытка использовать адаптер WiFi на Raspberry Pi 3 с использованием Windows 10 IoT

Код, который я пытаюсь запустить:

 private async Task<IEnumerable<string>> ScanNetworksAsync()
    {
        var access = await WiFiAdapter.RequestAccessAsync();

        if (access != WiFiAccessStatus.Allowed)
        {
            throw new Exception("Not Allowed to use WiFi");
        }

        var wifi = WiFiAdapter.FindAllAdaptersAsync().AsTask().Result[0];

        await wifi.ScanAsync();

        return wifi.NetworkReport.AvailableNetworks.Select(n => n.Ssid);
    }

У меня есть возможность, определенная в Package.appxmanifest:

<DeviceCapability Name="wiFiControl" />

Когда он пытается выполнить wifi.ScanAsync(), он просто выдает эту ошибку:

В доступе отказано. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED))

Что я упускаю или делаю неправильно?


person Wedge    schedule 15.11.2016    source источник
comment
Какой у вас WiFi адаптер?   -  person Rita Han    schedule 16.11.2016


Ответы (2)


Догадаться. Это что-то неясное или просто отсутствует в документации.

Все команды Wi-Fi, такие как ScanAsync() ConnectAsync(), не могут быть запущены в потоке пользовательского интерфейса. Я запускал их в отдельном потоке, но все равно блокировал пользовательский интерфейс (мне все равно, потому что это всего лишь тестовое приложение). Видимо это не запрещено.

Я нашел комментарий в примере приложения:

        // RequestAccessAsync must have been called at least once by the app before using the API
        // Calling it multiple times is fine but not necessary
        // RequestAccessAsync must be called from the UI thread

Это означает, что RequestAccessAsync() работает только при запуске в потоке пользовательского интерфейса. Я проверил его в обоих направлениях, и, похоже, он работает независимо от того, где он запущен.

person Wedge    schedule 16.11.2016
comment
Вы разобрались, но какой результат это дало, сработало ли? Я получаю сообщение об отказе в доступе на wifi.ScanAsync. - person Jnr; 31.07.2019

Для меня проблема заключалась в отсутствующей возможности в файле .appmanifest:

<Capabilities>
    <DeviceCapability Name="wiFiControl"/>
</Capabilities>
person Samir    schedule 18.09.2018