#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 — это секунда, отрегулируйте секунду в соответствии с вашими потребностями, потому что обновление времени высасывает заряд батареи
нравится мой ответ? проголосуйте и отметьте как ответ