-소스코드 java쪽
public class MainActivity extends AppCompatActivity {
TextView tv;
ToggleButton tb;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.textView2);
tv.setText("위치정보 미수신중");
tb = (ToggleButton) findViewById(R.id.toggle1);
final LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
tb.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
try {
if (tb.isChecked()) {
tv.setText("수신중..");
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,100,1,mLocationListener);
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,100,1,mLocationListener);
} else {
tv.setText("위치정보 미수신중");
lm.removeUpdates(mLocationListener);
}
} catch (SecurityException ex) {
}
}
});
}
private final LocationListener mLocationListener = new LocationListener() {
public void onLocationChanged(Location location) {
Log.d("test", "onLocationChanged, location:" + location);
double longitude = location.getLongitude(); // 경도
double latitude = location.getLatitude(); // 위도
double altitude = location.getAltitude(); // 고도
float accuracy = location.getAccuracy(); // 정확도
String provider = location.getProvider(); // 위치제공자
tv.setText("위치정보 : " + provider + "\n위도 : " + longitude + "\n경도 : "
+ latitude + "\n고도 : " + altitude + "\n정확도 : " + accuracy);
}
public void onProviderDisabled(String provider) {
// Disabled시
Log.d("test", "onProviderDisabled, provider:" + provider);
}
public void onProviderEnabled(String provider) {
// Enabled시
Log.d("test", "onProviderEnabled, provider:" + provider);
}
public void onStatusChanged(String provider, int status, Bundle extras) {
// 변경시
Log.d("test", "onStatusChanged, provider:" + provider + ", status:" + status + " ,Bundle:" + extras);
}
};
}