Как определить уровень сигнала Wi-Fi в приложениях Windows RT или 8.1 Application Store?

#windows-phone-8.1 #windows-store-apps

#windows-phone-8.1 #windows-store-приложения

Вопрос:

У меня возникли некоторые проблемы в приложениях магазина Windows 8.1, я хочу, чтобы событие приложения, если уровень сигнала Wi-Fi изменится, ваши ответы будут оценены

Комментарии:

1. В среде выполнения Windows класс WiFiAvailableNetwork имеет свойство SignalBars , которое может определять уровень сигнала в виде количества баров. Текущее количество полос сигналов, отображаемых пользовательским интерфейсом Windows для сети.

Ответ №1:

Вы можете использовать класс NetworkConnection, присутствующий в Windows.Сеть.Пространство имен ConnectionProfile и используйте класс ConnectionProfile, в котором есть метод GetSignalBars, который выдает нулевой байт от значения 0 до 5.

 var strength = Windows.Networking.Connectivity.NetworkInformation.GetInternetConnectionProfile().GetSignalBars();
  

Более подробную информацию о уровне сигнала можно найти здесь. Надеюсь, это поможет.

Комментарии:

1. Привет, CodeNoob, я уже использовал приведенный выше код, но я хочу, чтобы событие, если уровень сигнала Wi-Fi изменится, срабатывало автоматически,

2. Для этой цели нет события. Другим способом может быть использование интервального таймера и вызов вышеупомянутого кода через определенные промежутки времени.

Ответ №2:

В настоящее время я не вижу никаких событий, позволяющих вам обнаруживать изменения уровня сигнала Wi-Fi. Я могу подумать о повторном чтении данных в вашем приложении с помощью диспетчерского таймера. Более подробную информацию о создании сканера Wi-Fi в UWP вы можете найти в этом документе .

Ответ №3:

безусловно, вы можете получить полосы сигналов, но вопрос в том, как обновить уровень сети

у меня есть ответ на (я могу точно указать, что вам следует, если вы предоставите код xaml и c #).. теперь все, что вам нужно сделать, это использовать «DispatcherTimer», который будет время от времени обновлять уровень вашего сигнала. используйте этот код при инициализации страницы или инициализации app.xaml.cs

 using System.Windows.Threading;



DispatcherTimer timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(1) };

timer.Tick  = delegate (object sender, EventArgs e)
{ 
   // use your wifi class etc. e.g this.SignalStrengthProgressBar.Value = (FMRadio.Instance.SignalStrength); this is example for fm radio in wp8.
};

timer.Start();
  

здесь timespan.fromsecond (1) 1 — это секунда, отрегулируйте секунду в соответствии с вашими потребностями, потому что обновление времени высасывает заряд батареи

нравится мой ответ? проголосуйте и отметьте как ответ