날뛰는 코드

구글 내위치 추적 끄기 (17/08/20) Google Map Api 본문

안드로이드/구글 맵

구글 내위치 추적 끄기 (17/08/20) Google Map Api

미 냉 2017. 8. 20. 22:11


 

할 것

1. gps버튼 두번 누르면 위치 받아오는 것 자체를 끄기       (실패)  

=> 다른버튼에 기능 넣으니까 성공

 

2. gps가 켜져 있지 않으면 위치 버튼 눌렀을 때 에러 표시  (성공)


 

 

1. gps버튼 두번 누르면 위치 받아오는 것 자체를 끄기

 

public boolean onMyLocationButtonClick() {
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);

lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,0,0,locationListener);
if(gps_cnt==0) {
Toast.makeText(this, "GPS 추적 ON", Toast.LENGTH_SHORT).show();
gps_cnt++;
}
else
{
lm.removeUpdates(locationListener);
Toast.makeText(this, "GPS 추적 OFF", Toast.LENGTH_SHORT).show();
gps_cnt=0;

map.setMyLocationEnabled(false);


}
return false;
}

map.setMyLocationEnabled(false);

이게 gps버튼에 넣으니까 gps기능이 아이에 꺼지면서 충돌이 생겨 앱이 다운된다.

 => 다른 버튼에 넣어보자

         

 

- CLEAR 버튼에 임시로 넣어 보니

map.setMyLocationEnabled(false);

를 하면 gps 버튼 자체도 사라지고, 상태창에 gps 이용 표시도 없어진다.

아이에 내 위치 받아 오는 기능자체를 차단하는 듯

gps 버튼은 살리고 싶은데  

map.getUiSettings().setMyLocationButtonEnabled(true);

 

해도 안되네 흠 일단 넘어간다.

 

 

 

2. gps가 켜져 있지 않으면 위치 버튼 눌렀을 때 에러 표시

 

public boolean onMyLocationButtonClick() {
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
if(!lm.isProviderEnabled(LocationManager.GPS_PROVIDER))
{
Toast.makeText(this, "GPS 켜지지않음", Toast.LENGTH_SHORT).show();
return false;
}
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,0,0,locationListener);
if(gps_cnt==0) {
Toast.makeText(this, "GPS 추적 ON", Toast.LENGTH_SHORT).show();
gps_cnt++;
}
else
{
lm.removeUpdates(locationListener);
Toast.makeText(this, "GPS 추적 OFF", Toast.LENGTH_SHORT).show();
gps_cnt=0;
}
return false;
}

여기서

if(!lm.isProviderEnabled(LocationManager.GPS_PROVIDER))
{
Toast.makeText(this, "GPS 켜지지않음", Toast.LENGTH_SHORT).show();
return false;
}

이부분 이케하면 끝

생각보다쉽네

 

 

Comments