private async Task TryGetNetworksAsync() { try { IsBusy = true; var bluetoothClient = new BluetoothModel(); WiFiNetworksResponse wifiResponse = await bluetoothClient.GetNetworksAsync(_mMContext.Device); if (wifiResponse.IsSuccess) { HasNetworks = wifiResponse.Networks.Any(); if (HasNetworks) { Networks = new ObservableCollection <string>(wifiResponse.Networks); } else { await App.Current.MainPage.DisplayAlert("Alert", "Not determine wifi networks. Please try again", "OK"); IsNotSuccessResult = true; } } else { _navigation.NextPage <WiFiSetupCredentialsPage>(); /*if (wifiResponse.ErrorCode == 2) * { * //todo вручную вводить имя сети и пароль и потом перезапустить зеркало * IsNotSuccessResult = true; * } * else * { * //display this error wifiResponse.ErrorInfo * await App.Current.MainPage.DisplayAlert("Alert", "Something went wrong, please reconnect", "OK"); * await _bluetoothService.DisconnectAsync(_mMContext.Device); * _navigation.NextPage(typeof(SearchingDevicePage)); * }*/ } } finally { IsBusy = false; } }
/// <summary> /// Получение списка wifi сетей /// </summary> /// <param name="device">Устройство к которому подключились</param> /// <returns>Список сетей</returns> public async Task <WiFiNetworksResponse> GetNetworksAsync(IDevice device) { try { if (device.State == Plugin.BLE.Abstractions.DeviceState.Connected) { WiFiResponse response = await GetCharacteristicAsync(device, Constants.WiFiNetworksCharacteristicsGuid); if (response.IsSuccess) { var result = await response.Characteristic.WriteAsync(new byte[] { }); var data = await response.Characteristic.ReadAsync(); var wifiResponseJson = Encoding.UTF8.GetString(data); WiFiNetworksResponse wifiResponse = JsonConvert.DeserializeObject <WiFiNetworksResponse>(wifiResponseJson); return(wifiResponse); } else { return(new WiFiNetworksResponse() { IsSuccess = false, ErrorCode = response.ErrorCode }); } } else { return(new WiFiNetworksResponse() { IsSuccess = false, ErrorCode = (int)BluetoothErrorCode.NoConnection }); } } catch (Exception ex) { return(new WiFiNetworksResponse() { IsSuccess = false, ErrorCode = (int)BluetoothErrorCode.Unknown, ErrorInfo = ex.ToString() }); } }