์์น๋ฅผ ์ธ์ ํ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค. ๋ค์์ ์ฝ๋์
๋๋ค.
Geolocator geo = Geolocator ();
์์น pos =
await geo.getCurrentPosition (desiredAccuracy : LocationAccuracy.high);
print (pos);
Android ์๋ฎฌ๋ ์ดํฐ ์์น์์ ์๋ํ๋ฉฐ ์ฝ์์ ์ธ์๋ฉ๋๋ค.
iOS ์๋ฎฌ๋ ์ดํฐ์์ ์๋ํ์ง ์๊ณ ์๋ฌด๊ฒ๋ ์ธ์๋์ง ์์ผ๋ฉฐ print (pos) ๋ค์ ๋ค๋ฅธ print ๋ฌธ์ ์ถ๊ฐํ๋ฉด ์ธ์๋์ง ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ์์น๋ฅผ ์ป์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ์์ํ "๊ธฐ๋ค๋ฆฐ๋ค"๊ณ ์๊ฐํ๊ณ ์์ต๋๊น?
Android Studio์ iPhone 11 ์๋ฎฌ๋ ์ดํฐ
๋ฒ์ : 1.x
ํ๋ซํผ:
: iphone : iOS
@LarryJing ์ด ๋ฌธ์ ๋ฅผ ์ฌํ ํ ์ ์์ต๋๋ค. ์ค์ ๋ก ์์น ์ ๋ฐ์ดํธ๋ฅผ ์๋ฎฌ๋ ์ด์ ํ์ต๋๊น? iOS ์๋ฎฌ๋ ์ดํฐ์์ "๊ธฐ๋ฅ"-> "์์น"๋ฉ๋ด ์ต์ ์ ์ฌ์ฉํ์ฌ ์์น๋ฅผ ์ ๊ทน์ ์ผ๋ก ์ค์ ํด์ผํฉ๋๋ค.
์, ios ์๋ฎฌ๋ ์ดํฐ์์์ด ํ๋ฌ๊ทธ์ธ์ ์ค๋ฅ๊ฐ ์์ต๋๋ค. ์ฝ์์์ด ๋ก๊ทธ๊ฐ ํ์๋ฉ๋๋ค.
์, ios ์๋ฎฌ๋ ์ดํฐ์์์ด ํ๋ฌ๊ทธ์ธ์ ์ค๋ฅ๊ฐ ์์ต๋๋ค. ์ฝ์์์ด ๋ก๊ทธ๊ฐ ํ์๋ฉ๋๋ค.
๋๋ ๊ฐ์ ์ค๋ฅ๊ฐ ์์ต๋๋ค.
```ํ๋ฌํฐ ๋ฅํฐ
[โ] Flutter (์ฑ๋ ์์ , v1.17.2, Mac OS X 10.15.4 19E287, locale en-JP)
[โ] Android ํด์ฒด์ธ-Android ๊ธฐ๊ธฐ ์ฉ ๊ฐ๋ฐ (Android SDK ๋ฒ์ 29.0.3)
[โ] Xcode-iOS ๋ฐ macOS ์ฉ ๊ฐ๋ฐ (Xcode 11.5)
[โ] Android Studio (๋ฒ์ 4.0)
[!] IntelliJ IDEA Ultimate Edition (๋ฒ์ 2018.2.2)
โ Flutter ํ๋ฌ๊ทธ์ธ์ด ์ค์น๋์ง ์์์ต๋๋ค. ์ด๊ฒ์ Flutter ํน์ ๊ธฐ๋ฅ์ ์ถ๊ฐํฉ๋๋ค.
โ Dart ํ๋ฌ๊ทธ์ธ์ด ์ค์น๋์ง ์์์ต๋๋ค. ์ด๊ฒ์ Dart ํน์ ๊ธฐ๋ฅ์ ์ถ๊ฐํฉ๋๋ค.
[โ] VS Code (๋ฒ์ 1.45.1)
[โ] ์ฐ๊ฒฐ๋ ์ฅ์น (1 ๊ฐ ์ฌ์ฉ ๊ฐ๋ฅ)
```
๋ฒ์ : geolocator: 5.3.2
์๋ฎฌ๋ ์ดํฐ : iPhone 11 / Software Version 13.5
๋ชจ๋ ๋ฒ์ ์ด 5.3.1
๋ณ๊ฒฝ๋๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.
์์น ์
๋ฐ์ดํธ ๊ถํ์ ์ถ๊ฐํ๋ฉด์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค.
๋๋ ๋ํ ์ด๊ฒ์ ๋ถ๋ช ์น๊ณ ์๋ค. ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์์น๋ฅผ ์์ฒญํ์ง ์๊ณ ์ ๊ฒฝ ๋ง ์์ฒญํ๊ณ ์ถ์ต๋๋ค. ์ด๊ฒ์ด ๋ฐฐ๊ฒฝ ๋ชจ๋๋ฅผ ํ์ฑํ ํ ํ์๊ฐ ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
์ด๊ฒ์ ์ค์ ๋ก ์ค์๋ก ๊ฒ์ ๋ ์ค๋ฅ์ ๋๋ค. ์ค๋ / ๋ด์ผ ๋์ค์ ์์ ํ๊ฒ ์ต๋๋ค. ๊ทธ๋๊น์ง ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์์น ์ ๋ฐ์ดํธ๋ฅผ ํ์ฑํํ๊ฑฐ๋ 5.3.1์ ๊ณ ์ํ์ญ์์ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผํ๋ ํซํฝ์ค (๋ฒ์ 5.3.2 + 1)๋ฅผ ๋ฐฉ๊ธ ์ถ์ํ์ต๋๋ค. Backgroup ์์น ์
๋ฐ์ดํธ๋ฅผ ์ฌ์ฉํ๋ ์ต์
์ ์ฌ์ฉํ์ฌ ํ์ฌ ๊ตฌ์ฑ ํ ์ ์์ต๋๋ค EnableBackgroundLocationUpdates
์์ ํค๋ฅผ ๋น์ ์ Info.plist
(๋ํ ์ฐธ์กฐ README.md ์์ดํฐ OS ์น์
์ฐธ์กฐ).
๋๋ฒ๊ทธ๋ฅผ ๋์ ์ฃผ์ ๋ชจ๋ ๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋ค์ ์ ๋๋ก ์๋ํ๋์ง ์๋ ค์ฃผ์ธ์.
์์ ์ ํ์ธํ๊ณ ๋ฌธ์ ๋ฅผ ์ข ๊ฒฐํ์ต๋๋ค.
์๋ ํ์ธ์, ์ ๋ ์ฌ๊ธฐ์์ ํ๋ฌํฐ์ ํจ๊ป ์์น ์ ๋ณด ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ ์๋กญ๊ณ ์ด ํ๋ก์ ํธ๋ฅผ ์ฐพ์์ต๋๋ค. ์ข์ ๋ณด์ด์ง๋ง ํ์ฌ ์์น๋ฅผ ๊ฐ์ ธ ์ค๋ ค๊ณ ํ ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ณ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์ค์ง๋๊ณ ๊ฐ๋จํ ๋ฒํผ์ ๋๋ฅด๋ฉด ๋ซํ๋๋ค. ์์น๋ฅผ ํ์ธํ๋ ค๋ฉด ...
์ด๊ฒ์ ๋๋ฏธ ํด๋์ค์ onPress ์ด๋ฒคํธ ํธ๋ค๋ฌ์์ ์ฌ์ฉํ๋ ํ์ฌ ์ฝ๋์ ๋๋ค.
GeolocationStatus geolocationStatus = await Geolocator().checkGeolocationPermissionStatus();
if (geolocationStatus == GeolocationStatus.granted) {
Position position = await Geolocator().getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
print('position $position');
}
๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ pubspec.yaml
์์ ์ฌ์ฉ์ค์ธ ํจํค์ง ๋ฒ์ ์
๋๋ค.
geolocator: ^5.3.2+2
๊ทธ๋ฆฌ๊ณ ๋ค์์ info.plist
ํ์ผ์ ์ถ๊ฐ ํ ํค์
๋๋ค.
<!-- ...skipped by brevity -->
<key>EnableBackgroundLocationUpdates</key>
<true/>
<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>
<key>NSLocationAlwaysAndWhenInUsageDescription</key>
<string>Always And In Use Permission</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>This app needs access to location when open and in the background.</string>
<!-- skipped by brevity... -->
@mvanbeusekom ๋ด๊ฐ ๋ญ ์๋ชปํ๊ณ ์๋ค๊ณ ์๊ฐํ๋?
@mvanbeusekom , ๋งํฌ๊ฐ ์๋ํ์ง ์๋ ๊ฒ EnableBackgroundLocationUpdates
์ ๋ํ ์ฐธ์กฐ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ์ด ํจํค์ง btw ..
@markbeij , ์ธ๊ธ ๋ ๋งํฌ๊ฐ 5.3.1 ๋ฆด๋ฆฌ์ค์ ์ผ๋ถ์์ต๋๋ค. ํ์ฌ ์ฐ๋ฆฌ๋ ์ฐํฉ ํ๋ฌ๊ทธ์ธ ์ํคํ ์ฒ๋ฅผ ์ง์ํ๊ธฐ ์ํด ์ ๋ฐ์ดํธ ๋ ํด๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ํจ์ฌ ๊ฐ์ ๋ ๋ฒ์ 6.1.6์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค (์ฌ๋ฌ ํ๋ซํผ์ ๋ ์ฝ๊ฒ ์ง์ํ ์ ์๋๋ก ํจ).
README.md์ ๋ํ ํ์ฌ ๋งํฌ : https://github.com/Baseflow/flutter-geolocator/blob/master/README.md
๋ฐฑ๊ทธ๋ผ์ด๋ ๋ชจ๋์ ๊ดํ ์น์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฑ์ด ๋ฐฑ๊ทธ๋ผ์ด๋์์์ ๋ ์ ๋ฐ์ดํธ๋ฅผ ๋ฐ์ผ๋ ค๋ฉด XCode ํ๋ก์ ํธ (ํ๋ก์ ํธ> ์๋ช ๋ฐ ๊ธฐ๋ฅ> "+ ๊ธฐ๋ฅ"๋ฒํผ)์ ๋ฐฑ๊ทธ๋ผ์ด๋ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ณ ์์น ์ ๋ฐ์ดํธ๋ฅผ ์ ํํด์ผํฉ๋๋ค. ์ด ์ ์์ฃผ์ํ์ธ์. AppStore์ ์ฑ์ ์ ์ถํ ๋ ์ฑ์ ์ ์ด๊ฒ์ด ํ์ํ์ง Apple์ ์์ธํ ์ค๋ช ํด์ผํฉ๋๋ค. Apple์ด ์ค๋ช ์ ๋ง์กฑํ์ง ์์ผ๋ฉด ์ฑ์ด ๊ฑฐ๋ถ๋ฉ๋๋ค.
์ด๊ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก EnableBackgroundLocationUpdates
๋งค๊ฐ ๋ณ์๋ฅผ Info.plist
ํฉ๋๋ค. geolocator๋ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํํ๋ ๊ฒ์ ์ง์ํ์ง ์์ผ๋ฉฐ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํํ๋ ๋์ ์
๋ฐ์ดํธ๋ฅผ๋ฐ์ ์์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ง ์์ต๋๋ค. ํ์ฌ EnableBackgroundLocationUpdates
๊ฐ ํ ์ผ์ ์ฑ์ด ๋ฐฑ๊ทธ๋ผ์ด๋์์๋ ๋์ ํ๋ซํผ์์ ์์น ์
๋ฐ์ดํธ๋ฅผ ๊ณ์ ์์ ํ๋๋ก ํ๋ซํผ์ ์ง์ํ๋ ๊ฒ๋ฟ์
๋๋ค (์๋ฌด๊ฒ๋ ํธ์ถ๋๊ฑฐ๋ ์คํ๋์ง ์์).
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@LarryJing ์ด ๋ฌธ์ ๋ฅผ ์ฌํ ํ ์ ์์ต๋๋ค. ์ค์ ๋ก ์์น ์ ๋ฐ์ดํธ๋ฅผ ์๋ฎฌ๋ ์ด์ ํ์ต๋๊น? iOS ์๋ฎฌ๋ ์ดํฐ์์ "๊ธฐ๋ฅ"-> "์์น"๋ฉ๋ด ์ต์ ์ ์ฌ์ฉํ์ฌ ์์น๋ฅผ ์ ๊ทน์ ์ผ๋ก ์ค์ ํด์ผํฉ๋๋ค.