Недопустимое исключение приведения в WiFiDirectDevice.FromIdAsync () - PullRequest
0 голосов
/ 14 марта 2019

Я пытаюсь создать рекламодателя WifiDirect для сопряжения и подключения моего ПК к телефону Android. Следуя этому руководству по Wifi Direct, Я дошел до того, что мой компьютер объявляет о подключении, и я вижу доступную опцию подключения по телефону. Однако, когда я выбираю свой компьютер для подключения, программа выдает ошибку System.InvalidCastException: 'Specified Cast is not valid.' в строке WiFiDirectDevice.FromIdAsnc().

Ниже приведена соответствующая функция OnConnectionRequested, которая добавляется в качестве прослушивателя событий перед началом публикации. Я скопировал строку метода для строки из учебника (15:30), поэтому я не совсем уверен, где я ошибаюсь. Любая помощь будет оценена.

private async void OnConnectionRequested(WiFiDirectConnectionListener
        sender, WiFiDirectConnectionRequestedEventArgs args)
{
    WiFiDirectConnectionRequest connectionRequest  = args.GetConnectionRequest();
    //Problem line is here:
    WifiDirectDevice wfdDevice = await WiFiDirectDevice.FromIdAsync(connectionRequest.DeviceInformation.Id);
    var EndpointPairs=wfdDevice.GetConnectionEndpointPairs();
    //TODO establish socket connection using above IP addresses
}

private void StartAdvert ()
{
    publisher = new WiFiDirectAdvertisementPublisher();

    //Sets the listen state to normal, so it can be discovered when app is in foreground
    publisher.Advertisement.ListenStateDiscoverability = WiFiDirectAdvertisementListenStateDiscoverability.Normal;

    listener = new WiFiDirectConnectionListener();
    listener.ConnectionRequested += OnConnectionRequested;
    publisher.Start();
}
...