2013-08-04 2 views
0

내가 장치의 위치를 ​​얻으려고 작동하지 않습니다 그래서 클래스현지화 : GPS가

public class MainActivity extends Activity implements LocationListener 

private Location getLocation(Context ctx) { 
    Location location = null; 
    LocationManager lm = (LocationManager) getApplicationContext().getSystemService(Context.LOCATION_SERVICE); 
    Criteria criteria = new Criteria(); 
    criteria.setAccuracy(Criteria.ACCURACY_FINE); 
    List<String> providers = lm.getProviders(true); 

    for(int i=providers.size() - 1; i>=0; i--) { 
     lm.requestLocationUpdates(providers.get(i), 100, 1, MainActivity.this); 
     location = lm.getLastKnownLocation(providers.get(i)); 
     if(location != null) { 
      Log.i("Used provider", providers.get(i)); 
      break; 
     } 
    } 

    if(location != null) { 
     Log.i("Latitude", String.valueOf(location.getLatitude())); 
     Log.i("Longitude", String.valueOf(location.getLongitude())); 
     Log.i("Accuracy", String.valueOf(location.getAccuracy())+" m"); 
    } 

    return location; 
} 

가 IT하지만 항상 아주 잘 작동하는 방법을 만들어 밖에 있더라도 GPS를 건너 뜁니다. 내가 거기에 무엇을 넣어야하는지 모르기 때문에 나는 LocationListener 인터페이스의 모든 비어있는 메소드를 비워 뒀다. 아이디어가 있으십니까? 내가 사용하는 코드가 괜찮다고 생각하니? 고마워요!

편집 : 답장을 보내 주셔서 감사합니다.하지만 내 코드에 이상이있을 것입니다. Log를 통해 어떤 장치가 사용 중인지 확인할 수 있습니다 : 어제는 "passive"를 사용했고 위치는 완벽했습니다 (26m 정확도). 그러나 오늘날에는 여전히 "passive"를 사용하고 있지만 정확도는 2288m입니다. Google지도를 사용하여 내 위치를 찾으려고하면 완벽하게 정상적으로 작동합니다. 내가 놓친 게 있니?

+0

GPS를 사용하여 응용 프로그램을 표시 할 언어 (로켈)를 결정하려고합니까? – michaelcarrano

+0

아니요, 기기를 찾으려고합니다. 즉, 좌표를 얻으려고합니다. – minomic

답변

0

GPS에서 위치가 더 빠르기 때문에 GSM/WiFi에서 위치를 선택한다고 생각합니다. WiFi를 사용하지 않도록 설정하거나 WiFi/GSM에서 위치를 가져 오지 못하게하려고 한 다음 위치를 찾으십시오.