[C#/MAUI/.NET6] Connectivity 클래스 : ConnectivityChanged 정적 이벤트를 사용해 네트워크 연결 변경시 처리하기
C#/MAUI 2022. 7. 5. 22:58728x90
반응형
728x170
▶ MainPage.xaml
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage x:Class="TestProject.MainPage"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
<Label x:Name="label"
HorizontalOptions="Center"
VerticalOptions="Center"
Text="" />
</ContentPage>
▶ MainPage.xaml.cs
using System.Text;
namespace TestProject;
/// <summary>
/// 메인 페이지
/// </summary>
public partial class MainPage : ContentPage
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - MainPage()
/// <summary>
/// 생성자
/// </summary>
public MainPage()
{
InitializeComponent();
this.label.Text = GetMessage(Connectivity.Current.NetworkAccess, Connectivity.Current.ConnectionProfiles);
Connectivity.ConnectivityChanged += connectivity_ConnectivityChanged;
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Private
//////////////////////////////////////////////////////////////////////////////// Event
#region 연결 변경시 처리하기 - connectivity_ConnectivityChanged(sender, e)
/// <summary>
/// 연결 변경시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void connectivity_ConnectivityChanged(object sender, ConnectivityChangedEventArgs e)
{
this.label.Text = GetMessage(e.NetworkAccess, e.ConnectionProfiles);
}
#endregion
//////////////////////////////////////////////////////////////////////////////// Function
#region 메시지 구하기 - GetMessage(networkAccess, profileEnumerable)
/// <summary>
/// 메시지 구하기
/// </summary>
/// <param name="networkAccess">네트워크 액세스</param>
/// <param name="profileEnumerable">프로필 열거 가능형</param>
/// <returns>메시지</returns>
private string GetMessage(NetworkAccess networkAccess, IEnumerable<ConnectionProfile> profileEnumerable)
{
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.AppendLine($"네트워크 액세스 : {networkAccess}");
stringBuilder.AppendLine( "연결 프로필");
foreach(ConnectionProfile profile in profileEnumerable)
{
stringBuilder.AppendLine($" {profile}");
}
return stringBuilder.ToString();
}
#endregion
}
728x90
반응형
그리드형(광고전용)
'C# > MAUI' 카테고리의 다른 글
[C#/MAUI/.NET6] SQLite 데이터베이스 사용하기 (ANDROID) (UWP) (0) | 2022.07.12 |
---|---|
[C#/MAUI/.NET6] 누겟 설치 : SQLitePCLRaw.provider.dynamic_cdecl (0) | 2022.07.12 |
[C#/MAUI/.NET6] 누겟 설치 : sqlite-net-pcl (0) | 2022.07.12 |
[C#/MAUI/.NET6] REST WEB API 서비스 사용하기 (ANDROID) (UWP) (0) | 2022.07.12 |
[C#/MAUI/.NET6] Shell 엘리먼트 : 태양 일출/일몰 및 달 위상 정보 조회하기 (0) | 2022.07.09 |
[C#/MAUI/.NET6] IImage 인터페이스 : Save 메소드를 사용해 이미지 저장하기 (0) | 2022.07.04 |
[C#/MAUI/.NET6] ICanvas 인터페이스 : FillCircle 메소드를 사용해 원 칠하기 (0) | 2022.07.03 |
[C#/MAUI/.NET6] ICanvas 인터페이스 : BlendMode 속성을 사용해 혼합 모드 설정하기 (프리뷰 버전 오류) (0) | 2022.07.03 |
[C#/MAUI/.NET6] DataTemplate 클래스 : CarouselView 클래스의 ItemTemplate 속성 설정하기 (0) | 2022.07.02 |
[C#/MAUI/.NET6] CarouselView 클래스 : ItemTemplate 속성 사용하기 (0) | 2022.07.01 |
댓글을 달아 주세요