: 당신이 전체 예제에 관심이 있다면
// Presents dialog screen - location services
private void askLocationDialog(){
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
alertDialogBuilder.setTitle(R.string.snoox_use_location_services_dialog);
// set dialog message
alertDialogBuilder.setMessage(R.string.would_you_like_to_turn_your_location_services_on_)
.setCancelable(false)
.setPositiveButton(R.string.ok,new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
// opens the setting android screen
Intent settingsIntent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(settingsIntent);
}
})
.setNegativeButton(R.string.no,new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
dialog.cancel();
}
});
// create alert dialog
alertDialogBuilder.create().show();
}
내가 도움이 게시물을 발견했다.
먼저 Google지도를 통합하려면 전체 참조 정보가 here이어야합니다. 간단한 단계에서
:
1 단계 here를 따라이 화면에 간단한 구글 맵을 추가하는 데 도움이됩니다.
2 자신의 위치를 가져 오려면 Android에서 LocationListener 및 LocationManager를 사용해야합니다. 이렇게하려면 먼저 을 위치 활동에 구현하십시오.
public class LocationActivity extends Activity implements LocationListener
3 그런 다음 당신은 정기적으로 위치 업데이트를 요청 할 수 있어야합니다
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Get the location manager
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
// Define the criteria how to select the provider
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
provider = locationManager.getBestProvider(criteria, false);
Location location = locationManager.getLastKnownLocation(provider);
// Initialize the location fields
if (location != null) {
System.out.println("Provider " + provider + " has been selected.");
onLocationChanged(location);
}
}
4 귀하의에서 onCreate() 메소드에서 몇 가지 설정을 인스턴스화 할 필요가있다. onResume() 메소드에 이것을 포함 시키십시오.
@Override
protected void onResume() {
super.onResume();
locationManager.requestLocationUpdates(provider, 400, 1, this);
}
5 앱이 일시 중지주기에 속하는 경우 이러한 업데이트가 필요하지 않습니다.
2 단계에서 위치 리스너 구현은 당신이 onLocationChanged 수신기가 있어야
@Override
protected void onPause() {
super.onPause();
locationManager.removeUpdates(this);
}
6, 그것을 구현 :
@Override
public void onLocationChanged(Location location) {
int lat = (int) (location.getLatitude());
int lng = (int) (location.getLongitude());
}
7이 두 가지 방법을 추가하여 위치 설정의 제공자 통보받을 수 - GPS 또는 네트워크.
public void onProviderDisabled(String arg0) {
Toast.makeText(this, "Disabled provider " + provider,
Toast.LENGTH_SHORT).show();
}
public void onProviderEnabled(String arg0) {
Toast.makeText(this, "Enabled new provider " + provider,
Toast.LENGTH_SHORT).show();
}
8 이제 Google지도에 연결해야합니다. Google지도 API를 사용하여 현재 위치를 표시하는 마켓을 생성 할 수있는 한 가지 예를 보여 드리겠습니다. 다른 용도는 API에서 추론 할 수 있습니다.
먼저 코드에서 개인 필드를 만들 :
private GoogleMap mMap;
Marker m;
9가에서 onCreate 방법이 추가 -이 0,0 위도와 경도로 기본 마커 위치를 인스턴스화합니다.
mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
.getMap();
m = mMap.addMarker(new MarkerOptions().position(new LatLng(0, 0))
.title("Position"));
10 onLocationChanged 메서드에서 위치가 변경되면이 마커를 새로 고침해야합니다.
m.setPosition(new LatLng(lat, lng));
m.setTitle("Your Position");
// Move the camera instantly to marker with a zoom
// of 15.
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lng), 15));
이 당신의 위치에 마커를 업데이트하는 간단한 방법이 될 것이며, 안드로이드에서 좋은 Google지도에 대한 소개 및 위치 API해야합니다 : 그래서 추가 할 수 있습니다.
GPS가 켜져 있는지 확인하려면 @Dror에서 제공 한 답변을 사용할 수 있습니다. 도움을 받으십시오.