[C#/MAUI/.NET6] IGeolocation 인터페이스 : GetLastKnownLocationAsync 메소드를 사용해 가장 최근 GPS 위치 구하기 (ANDROID)
C#/MAUI 2022. 6. 11. 16:52728x90
반응형
728x170
▶ Platforms/Andriod/Resources/AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application android:allowBackup="true" android:icon="@mipmap/appicon" android:roundIcon="@mipmap/appicon_round" android:supportsRtl="true"></application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
</manifest>
728x90
▶ 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">
<StackLayout
HorizontalOptions="Center"
VerticalOptions="Center"
Spacing="10">
<Button x:Name="getbutton"
HorizontalOptions="Center"
Text="GPS 위치 구하기" />
<Label x:Name="messageLabel"
HorizontalOptions="Center" />
</StackLayout>
</ContentPage>
300x250
▶ MainPage.xaml.cs
namespace TestProject;
/// <summary>
/// 메인 페이지
/// </summary>
public partial class MainPage : ContentPage
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - MainPage()
/// <summary>
/// 생성자
/// </summary>
public MainPage()
{
InitializeComponent();
this.getbutton.Clicked += getbutton_Clicked;
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Private
#region GPS 위치 구하기 버튼 클릭시 처리하기 - getbutton_Clicked(sender, e)
/// <summary>
/// GPS 위치 구하기 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private async void getbutton_Clicked(object sender, EventArgs e)
{
try
{
Location location = await Geolocation.Default.GetLastKnownLocationAsync();
if(location != null)
{
this.messageLabel.Text = $"위도 : {location.Latitude}\n경도 : {location.Longitude}\n고도 : {location.Altitude}";
}
}
catch(FeatureNotSupportedException)
{
await DisplayAlert("ERROR", "지원되지 않은 기능입니다.", "확인");
}
catch(FeatureNotEnabledException)
{
await DisplayAlert("ERROR", "비활성된 기능입니다.", "확인");
}
catch(PermissionException)
{
await DisplayAlert("ERROR", "권한이 설정되지 않았습니다.", "확인");
}
catch(Exception)
{
await DisplayAlert("ERROR", "실행시 에러가 발생했습니다.", "확인");
}
}
#endregion
}
728x90
반응형
그리드형(광고전용)
'C# > MAUI' 카테고리의 다른 글
[C#/MAUI/.NET6] OnPlatform 엘리먼트 : Thickness 객체 설정하기 (0) | 2022.06.14 |
---|---|
[C#/MAUI/.NET6] ContentPropertyAttribute 클래스 사용하기 (0) | 2022.06.14 |
[C#/MAUI/.NET6] ContentPage 클래스 : Navigation 속성을 사용해 페이지 이동하기 (0) | 2022.06.14 |
[C#/MAUI/.NET6] dotnet restore 명령 : 종속성 복원하기 (0) | 2022.06.14 |
[C#/MAUI/.NET6] 플랫폼간 API 호출하기 (ANDROID) (IOS) (0) | 2022.06.12 |
[C#/MAUI/.NET6] ISecureStorage 인터페이스 : RemoveAll 메소드를 사용해 보안 저장소에서 모든 값 제거하기 (0) | 2022.06.11 |
[C#/MAUI/.NET6] ISecureStorage 인터페이스 : Remove 메소드를 사용해 보안 저장소에서 값 제거하기 (0) | 2022.06.11 |
[C#/MAUI/.NET6] ISecureStorage 인터페이스 : SetAsync/GetAsync 메소드를 사용해 보안 저장소 사용하기 (0) | 2022.06.11 |
[C#/MAUI/.NET6] IPreferences 인터페이스 : Clear 메소드를 사용해 모든 기본 설정 제거하기 (0) | 2022.06.11 |
[C#/MAUI/.NET6] IPreferences 인터페이스 : Remove 메소드를 사용해 기본 설정 제거하기 (0) | 2022.06.11 |
댓글을 달아 주세요