drexqq

[Flutter] geolocator (android/iOS) 본문

Mobile/Flutter

[Flutter] geolocator (android/iOS)

drexqq 2023. 1. 3. 23:15
728x90
반응형

프로젝트를 진행하기 위해 현재 위치를 가져오는 geolocator를 적용해보도록하겠습니다.

 

https://pub.dev/packages/geolocator

 

geolocator | Flutter Package

Geolocation plugin for Flutter. This plugin provides a cross-platform (iOS, Android) API for generic location (GPS etc.) functions.

pub.dev

위 URL에 자세한 사용방법과 설치 방법이 나와있습니다.

 

1. package 설치

flutter pub add geolocator

또는

dependencies:
  ...
  geolocator: ^9.0.2

pubspec.yaml 파일에 위 처럼 작성하신 뒤 pub get 하시면 됩니다.

 

2. Android 설정

1. android/gradle.properties 파일을 열어서 아래와 같은 설정이 되어 있는지 확인해준 뒤 없으면 추가해줍니다.

...
android.useAndroidX=true
android.enableJetifier=true

 

2. android/app/build.gradle 파일

...
android {
  compileSdkVersion 33

  ...
}
...

위와 같이 android 블럭에 compileSdkVersion을 수정해줍니다.
(android/build.gradle이 아닌 android/app/build.gradle파일입니다.)

 

3. android/app/src/main/AndroidManifest.xml 파일

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="...">
    ...
    </application>
    <!-- User Location -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
	<!-- Background Location -->
    <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
</manifest>

manifest 태그 사이에 위처럼 줄을 추가해줍니다.

마지막줄은 background에서 구동할때에 location을 받을지 권한을 받는 부분입니다.

 

3. iOS 설정

1. ios/Runner/Info.plist파일

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
	<dict>
    ...
    <key>NSLocationWhenInUseUsageDescription</key>
    <string>This app needs access to location when open.</string>
    <key>NSLocationAlwaysUsageDescription</key>
    <string>This app needs access to location when in the background.</string>
    ...

위처럼 두 줄을 추가해줍니다 !

 

이렇게하면 위치권한을 받아올 수 있는 설정은 끝입니다 !

728x90
반응형

'Mobile > Flutter' 카테고리의 다른 글

[Flutter] flutter_boilerplate  (0) 2023.01.10
[Flutter] permission_handler (android/iOS)  (0) 2023.01.04
[Flutter] 폰트 적용하기  (0) 2022.12.30
[Flutter] side project (2)  (0) 2022.12.29
[Flutter] side project (1)  (0) 2022.12.28
Comments