728x90
반응형
클래스딴 전역으로
double Latitude,Longitude; //위도경도
선언해줍니다.
final LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
final LocationListener gpsLocationListener = new LocationListener() {
public void onLocationChanged(Location location) {
String provider = location.getProvider(); //위치
Latitude = location.getLongitude(); //위도
Longitude = location.getLatitude(); //경도
double altitude = location.getAltitude(); //고도
// textView.setText("위치정보 : " + provider + "\n" +
// "위도 : " + Latitude + "\n" +
// "경도 : " + Longitude + "\n" +
// "고도 : " + altitude);
}
public void onStatusChanged(String provider, int status, Bundle extras) {
}
public void onProviderEnabled(String provider) {
}
public void onProviderDisabled(String provider) {
}
};
if ( Build.VERSION.SDK_INT >= 23 &&
ContextCompat.checkSelfPermission( getApplicationContext(), android.Manifest.permission.ACCESS_FINE_LOCATION ) != PackageManager.PERMISSION_GRANTED ) {
ActivityCompat.requestPermissions( MainActivity.this, new String[] { android.Manifest.permission.ACCESS_FINE_LOCATION },
0 );
}
else{
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
String provider = location.getProvider(); //위치
Latitude = location.getLongitude(); // 위도
Longitude = location.getLatitude(); // 경도
double altitude = location.getAltitude(); // 고도
// textView.setText("위치정보 : " + provider + "\n" +
// "위도 : " + Latitude + "\n" +
// "경도 : " + Longitude + "\n" +
// "고도 : " + altitude);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,
1000,
1,
gpsLocationListener);
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,
1000,
1,
gpsLocationListener);
}
위도와 경도값을 계속 보고싶으시다면 주석으로된 textView를 풀어서 사용해보시면 됩니다.
앱을 실행시켰을때 위치권한을 물어보는 퍼미션체크도 필요합니다.
private void Permissions(){
// 권한 물어서 권한안되어있으면 권한 셋팅해주기
int permissionCheck1 = ContextCompat.checkSelfPermission(this, Manifest.permission.INTERNET);
if(permissionCheck1 == PackageManager.PERMISSION_DENIED)
ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.INTERNET},1);
int permissionCheck2 = ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION);
if(permissionCheck2 == PackageManager.PERMISSION_DENIED)
ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.ACCESS_COARSE_LOCATION},1);
int permissionCheck3 = ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION);
if(permissionCheck3 == PackageManager.PERMISSION_DENIED)
ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.ACCESS_FINE_LOCATION},1);
}
다음은 메니페스트입니다.
<!-- 구글맵 -->
<permission android:name="com.lx.location.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.lx.location.permission.MAPS_RECEIVE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- 구글맵 -->
<!-- 인터넷사용 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 인터넷사용 -->
<!-- 위치권한 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<!-- 위치권한 -->
<uses-feature android:glEsVersion="0x00020000"
android:required="true"/>
<!-- 이거필수 -->
<uses-library android:name="com.google.android.maps"/>
<uses-library android:name="org.apache.http.legacy"
android:required="false"/>
<!-- 이거필수 -->
<!-- 이거필수 -->
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="구글에서받은 API키 입니다."
/>
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>
<!-- 이거필수 -->
궁금하신 사항은 댓글 남겨주세요.
728x90
반응형
'Android' 카테고리의 다른 글
안드로이드 스튜디오 WebView 경고창 및 확인창 띄우기 (0) | 2019.10.24 |
---|---|
안드로이드 스튜디오 FCM 기기 고유의 토큰값 받아오기. (0) | 2019.10.24 |
FCM 파이어베이스 포그라운드 백그라운드 알림 및 백그라운드 작업처리 (7) | 2019.10.24 |
WebView SSL에러로 인해 흰색페이지에서 멈춰있을때 (0) | 2019.10.24 |
WebView 뒤로가기버튼 및 2번 터치시 앱종료 (0) | 2019.10.24 |
댓글