Flutter-geolocator: ์œ„์น˜ ์„œ๋น„์Šค๊ฐ€ ๊บผ์ ธ ์žˆ์„ ๋•Œ ์ž‘๋™ํ•˜์ง€ ์•Š์Œ

์— ๋งŒ๋“  2019๋…„ 08์›” 16์ผ  ยท  13์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: Baseflow/flutter-geolocator

๋‹ค๋ฅธ ํ”Œ๋Ÿฌํ„ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ๋‹ฌ๋ฆฌ ์ด๊ฒƒ์€ ์œ„์น˜ ์„œ๋น„์Šค๊ฐ€ ๊บผ์ ธ ์žˆ์„ ๋•Œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

needs more info enhancement

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‚˜๋„ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ์•ˆ๊ณ ์žˆ์–ด. GPS๋ฅผ ๋Œ ๋•Œ
await Geolocator().getCurrentPosition(desiredAccuracy: LocationAccuracy.low/high);
๊ทธ๋ƒฅ ์ ˆ๋Œ€ ๋Œ์•„ ์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

locationManager.NETWORK_PROVIDER ๋ฅผ ํ†ตํ•ด ์žฅ์น˜์˜ ์œ„์น˜์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๊นŒ?

๋˜ํ•œ ๊ธฐ๋‹ค๋ฆผ์ด ๋๋‚˜์ง€ ์•Š๋”๋ผ๋„
geolocator.checkGeolocationPermissionStatus();
๋ถ€์—ฌ๋œ ์ƒํƒœ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  13 ๋Œ“๊ธ€

์ž‘๋™ํ•˜๋ ค๋ฉด ์œ„์น˜ ์„œ๋น„์Šค๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ? ์œ„์น˜๋ฅผ ์–ด๋–ป๊ฒŒ ์–ป์—ˆ์„๊นŒ์š”?

@Xgamefactory ๋‹น์‹ ์ด ๊ธฐ๋Œ€ํ•˜๋Š” ๊ฒƒ์„ ๋ช…ํ™•ํžˆ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? @aronnelson ์ด ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋ ค๋ฉด ์œ„์น˜ ์„œ๋น„์Šค๊ฐ€ ์‹คํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด ์ •ํ™•ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์„œ๋น„์Šค๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ์ง€ ์•Š์„ ๋•Œ ์–ด๋–ค ์ผ์ด ์ผ์–ด๋‚  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•˜์‹ญ๋‹ˆ๊นŒ?

  1. ๋‚˜๋Š” Position position = await Geolocator().getCurrentPosition(desiredAccuracy: LocationAccuracy.high);

๊ฐ€๋” GPS๊ฐ€ ๊บผ์ ธ์žˆ์„ ๋•Œ GPS๋ฅผ ์ผœ๊ณ  ๋‚˜๋ฉด ์œ„์น˜๊ฐ€ ํŒŒ์•…๋ฉ๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ์‹œ๊ฐ„์—๋Š” .. Google์ง€๋„๋ฅผ ์—ด ๋•Œ๊นŒ์ง€ ์•„๋ฌด ๊ฒƒ๋„ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. (๋ช‡ ๋ฒˆ ํ…Œ์ŠคํŠธ) ์ด "์ถ”์šด" ์ƒํƒœ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

  1. GPS๊ฐ€ ๊บผ์ ธ ์žˆ์œผ๋ฉด ์ผœ๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ ๋Œ€ํ™” ์ƒ์ž๊ฐ€ ์žˆ์–ด์•ผ ํ•˜๋ฉฐ ์‚ฌ์šฉ์ž๊ฐ€ ๋ง‰๋Œ€๋ฅผ ๋ฐ€์–ด์•ผ ํ•˜๋Š” ๋Œ€์‹  ์˜ˆ(gps๊ฐ€ ๊บผ์ ธ ์žˆ์„ ๋•Œ Google ์ง€๋„์—์„œ ์–ด๋–ค ์ผ์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ํ™•์ธ)๋ฅผ ๋ˆ„๋ฅด๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๋ ค์„œ ์Šค์Šค๋กœ ์ผœ์‹ญ์‹œ์˜ค.

๊ฐ์‚ฌ ํ•ด์š”

ํ˜„์žฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์„œ๋น„์Šค ์œ„์น˜ ํ™œ์„ฑํ™”๋ฅผ ์š”์ฒญํ•˜๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค...
LocationPermissions ํด๋ž˜์Šค๋Š” ์„œ๋น„์Šค ๊ถŒํ•œ ๋ฐ ํ™œ์„ฑํ™” ๊ด€๋ฆฌ๊ฐ€ ์ˆ˜ํ–‰๋˜๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค... openAppSettings() ๋ฉ”์„œ๋“œ ๋Œ€์‹  requestServiceActivation() ๋˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์„ค์ • ๋˜๋Š” QuickSettings์— ๋“ค์–ด๊ฐ€์ง€ ์•Š๊ณ  LocationService๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋ฉ”์„œ๋“œ์—ฌ์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค... FusedLocation ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณต๋˜๋Š” AlertDialog๋ฅผ ํ†ตํ•ด ServiceActivation์„ ์š”์ฒญํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ Android์˜ ๊ฒฝ์šฐ Google Maps๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

๋‚˜๋„ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ์•ˆ๊ณ ์žˆ์–ด. GPS๋ฅผ ๋Œ ๋•Œ
await Geolocator().getCurrentPosition(desiredAccuracy: LocationAccuracy.low/high);
๊ทธ๋ƒฅ ์ ˆ๋Œ€ ๋Œ์•„ ์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

locationManager.NETWORK_PROVIDER ๋ฅผ ํ†ตํ•ด ์žฅ์น˜์˜ ์œ„์น˜์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๊นŒ?

๋˜ํ•œ ๊ธฐ๋‹ค๋ฆผ์ด ๋๋‚˜์ง€ ์•Š๋”๋ผ๋„
geolocator.checkGeolocationPermissionStatus();
๋ถ€์—ฌ๋œ ์ƒํƒœ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

locationManager.NETWORK_PROVIDER๋ฅผ ํ†ตํ•ด ์žฅ์น˜์˜ ์œ„์น˜์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?
๋ช…๋ฐฑํ•œ ์‚ฌ์šฉ์ž ์˜ค๋ฅ˜: SIM ์นด๋“œ ์—†์Œ => ๋„คํŠธ์›Œํฌ ์—†์Œ....

ํ”Œ๋Ÿฌ๊ทธ์ธ์—๋Š” ์œ„์น˜ ์„œ๋น„์Šค ๋„๊ธฐ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ๋Š” ๋„ค์ดํ‹ฐ๋ธŒ ํ”Œ๋žซํผ์—์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์ตœ์†Œํ•œ GeolocationStatus disabled๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•˜์ง€๋งŒ GeolocationStatus๊ฐ€ ๋ถ€์—ฌ๋œ ๊ฒƒ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
๋” ๋‚˜์€ ์„ค๋ช…์ด ํ•„์š”ํ•˜๋ฉด ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค. ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์ตœ์†Œํ•œ GeolocationStatus disabled๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•˜์ง€๋งŒ GeolocationStatus๊ฐ€ ๋ถ€์—ฌ๋œ ๊ฒƒ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
๋” ๋‚˜์€ ์„ค๋ช…์ด ํ•„์š”ํ•˜๋ฉด ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค. ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€์žˆ๋‹ค

@carlos-labrador, @Hunter3173 , ์œ„์น˜ ์„œ๋น„์Šค๊ฐ€ ์‹คํ–‰ ์ค‘์ธ์ง€ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด Geolocator().isLocationServiceEnabled() ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด ๋ฌธ์ œ๋„ ํ™•์ธํ•˜์„ธ์š”. #414

์œ„์น˜ ์„œ๋น„์Šค ํ™œ์„ฑํ™”๋ฅผ ๋ณด๋‹ค ์›ํ™œํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์‚ดํŽด๋ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ด๊ฒƒ์ด ์›๋ž˜ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค). Android์—์„œ @luis901101์ด ์ œ์•ˆํ•œ ๋Œ€๋กœ FusedLocation ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค ํ™œ์„ฑํ™”๋ฅผ ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@carlos-labrador, @Hunter3173 , ์œ„์น˜ ์„œ๋น„์Šค๊ฐ€ ์‹คํ–‰ ์ค‘์ธ์ง€ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด Geolocator().isLocationServiceEnabled() ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด ๋ฌธ์ œ๋„ ํ™•์ธํ•˜์„ธ์š”. #414

์œ„์น˜ ์„œ๋น„์Šค ํ™œ์„ฑํ™”๋ฅผ ๋ณด๋‹ค ์›ํ™œํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์‚ดํŽด๋ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ด๊ฒƒ์ด ์›๋ž˜ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค). Android์—์„œ @luis901101์ด ์ œ์•ˆํ•œ ๋Œ€๋กœ FusedLocation ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค ํ™œ์„ฑํ™”๋ฅผ ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌ ํ•ด์š” !

@carlos-labrador, @Hunter3173 , ์œ„์น˜ ์„œ๋น„์Šค๊ฐ€ ์‹คํ–‰ ์ค‘์ธ์ง€ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด Geolocator().isLocationServiceEnabled() ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด ๋ฌธ์ œ๋„ ํ™•์ธํ•˜์„ธ์š”. #414

์œ„์น˜ ์„œ๋น„์Šค ํ™œ์„ฑํ™”๋ฅผ ๋ณด๋‹ค ์›ํ™œํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์‚ดํŽด๋ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ด๊ฒƒ์ด ์›๋ž˜ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค). Android์—์„œ @luis901101์ด ์ œ์•ˆํ•œ ๋Œ€๋กœ FusedLocation ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค ํ™œ์„ฑํ™”๋ฅผ ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹น์‹ ์˜ ๋„์›€์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋ฒ„์ „ 6.0.0์—์„œ ์ˆ˜์ •๋จ

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰