내가주의 사항은 다음과 같습니다 당신의 위치가 처음 발견 될 때까지 첫째
, 그것은 시간이 걸릴 수 있습니다, 원인이되는 그 문제는 위치가 널인지 만 확인하기 때문에 발생합니다.
또한 장치의 위치 서비스가 실제로 아무것도하기 전에 활성화되어 있는지 확인 할 수 있습니다
:
private void setupLocation() {
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
LocationListener locationListener = new LocationListener() {
public void onLocationChanged(final Location location) {
runOnUiThread(new Runnable() {
public void run() {
mLocation = location;
//Log.d(TAG, "Latitude: " + location.getLatitude() + " - Longitude: " + location.getLongitude());
saveLocation();
}
});
}
public void onStatusChanged(String provider, int status, Bundle extras) {}
public void onProviderEnabled(String provider) {}
public void onProviderDisabled(String provider) {}
};
//Can set to GPS or network, whichever is available
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
}
: 나는 공급자가 연결과 같이 사용할 수 I 설정되어 있는지했습니다 후
private boolean doLocationsCheck(){
if(!checkLocationEnabled()){
final CharSequence[] items = {"Yes", "No"};
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
builder.setCancelable(false);
builder.setTitle("Location must be enabled to play this game! Would you like to enable it now?");
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
final int i = item;
runOnUiThread(new Runnable() {
public void run() {
if(i == 0){
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(intent);
quit();
}
else{
quit();
}
}
});
}
}).show();
AlertDialog alert = builder.create();
return false;
}
else {
return true;
}
}
private boolean checkLocationEnabled(){
LocationManager service = (LocationManager) getSystemService(LOCATION_SERVICE);
boolean enabled = service.isProviderEnabled(LocationManager.GPS_PROVIDER) || service.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
return enabled;
}
그러면 위치가 업데이트 될 때마다 전역 변수에 설정되고 환경 설정에 저장됩니다. 이렇게하면 공급자가 활성화되었지만 위치를 검색하는 데 시간이 오래 걸리는 경우에도 사용자는 응용 프로그램이 저장된 마지막 위치와 함께 응용 프로그램을 계속 사용할 수 있습니다 (처음 프로그램에 적용되지 않음) 실행됩니다.
나는 거기에서 많이 빠져 나갔다. 그러나 나는 그것이 실제로 설명이 필요 없거나 이전의 대답에서 이미 설명 되었기 때문에 그것이 정말로 필요 없다고 생각했다.
건배 ~
if 문을 입력 할 때 Google 검색이 준비되지 않았습니까? Google Maps javascript API를 사용하며 검색이 완료되면 콜백 함수가 호출됩니다. 안드로이드에서 어떻게 작동하는지 모르겠다. –
이 [링크] (http://stackoverflow.com/questions/9990209/cant-mark-while-showing-the-current-location-in-mapview/9990668#9990668)을 참조하십시오. 요구 사항 및 마커를 배치하는 방법에 대해 설명합니다. –
마커를 잘 배치 할 수 있습니다. 내 문제는 시작시 미세한 위치가 나쁘다는 것입니다. 나는이 코드를 내 on 메소드에도 넣었지만, 다른 else 문장으로 곧바로 바라고있다. 내 사용 권한과 관련이 있습니까? –