Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- HTTP
- navigator
- ListTile
- Scaffold
- AppBar
- Flutter Example
- Column Widget
- Row
- InkWell
- CrossAxisAlignment
- Flutter Tutorial
- Load Image
- Hello World
- Flutter 예제
- sqlite
- FutureBuilder
- Networking
- Snackbar
- Flutter 앱 배포
- node.js
- ListView.builder
- 반석천
- Image.network
- WillPopScope
- Cached Image
- listview
- Flutter 강좌
- Row Widget
- MainAxisAlignment
- flutter
Archives
- Today
- Total
꿈꾸는 시스템 디자이너
LocationManager 설정시 주의 사항 본문
안드로이드 단말이 현재 위치를 확인하는 방법은 GPS를 통한 방법과 기지국을 통한 방법이 있다.
LocationManager를 이용하여 LocationProvider를 세팅하는 방식으로 위치를 확인 방식을 설정할 수 있다.
GPS를 이용하는 방식은 정확도가 높지만, 실내에서는 사용이 불가능하다는 단점이 있고, 기지국을 이용하는 방식은 실내 사용이 가능하지만 정확도가 떨어진다.
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // LocationManager 객체 생성 locationManager = (LocationManager) this .getSystemService(Context.LOCATION_SERVICE); // LocationManaer.NETWORK_PROVIDER : 기지국들로부터 현재 위치 확인 // LocationManaer.GPS_PROVIDER : GPS들로부터 현재 위치 확인 if (locationManager.isProviderEnabled(locationManager.NETWORK_PROVIDER) == true) { locationProvider = LocationManager.NETWORK_PROVIDER; } else locationProvider = LocationManager.GPS_PROVIDER; // 현재 위치를 조회한다. 결과는 locationListener를 통해 수신 locationManager.requestLocationUpdates(locationProvider, 10000, 0, locationListener); // 최근 위치를 조회한다. 결과는 바로 얻을 수 있음 Location lastKnowLocation = locationManager .getLastKnownLocation(locationProvider); showLocationByToast(lastKnowLocation); // 위치 조회를 철회한다. 리스너를 제거한다. // locationManager.removeUpdates(locationListener); }
또한가지 주의사항으로, 개통되지 않은 단말기를 이용하여 개발을 할 때에는 NETWORK_PROVIDER를 이용해서는 안된다. 개통되지 않은 단말기에서 NETWORK_PROVIDER로 설정하고 LocationManager가 제공하는 메소드들을 호출하면 에러가 발생한다.
여담으로.. 갤럭시노트2에서는 잘 동작하는 앱이 개발폰(갤럭시넥서스)에서는 에러가 나는 이유가 무엇인지를 몰라 한참을 고생했다. 동일 APK 파일인데 장치마다 동작여부가 다르니 황당할 수 밖에..
원인이 개발폰이 미개통 폰인데 기지국으로부터 현재 위치를 확인하려고 해서였다. ㅡ,ㅡ
'Development > Android' 카테고리의 다른 글
ProgressDialog와 AlertDialog 사용법 (0) | 2013.07.15 |
---|---|
개발폰에 구글 플레이 스토어(Google Play Store) 수동 설치 및 구글맵 설치 (0) | 2013.06.14 |
엑티비티(Activity)와 서비스(Service) 예제 (0) | 2013.05.15 |
레이아웃 인플레이션(Layout Inflation)의 이해 (0) | 2013.05.14 |
adb를 통한 apk파일 설치 및 삭제 (0) | 2012.10.28 |
Comments