2011-05-06 5 views
3

나는 현재 특정 위치로 돌아 가기 위해 사용자의 현재 위치 정보를 얻기 위해 GPS를 사용하고 있습니다. 벨기에 에서처럼, 내부에 있다면 대부분의 경우 GPS 연결을 얻을 수 없습니다. 그래서 와이파이 연결로 현재 위치를 얻고 싶습니다.GPS와 WIFI로 현재 위치 얻기

나는이 예제를 발견했습니다 get the current location (gps/wifi) 그러나

나는 선이 선택할 수있는 연결 장치를 얘기하는 확실하지 않다. 나는 그것이 하나라고 추측하고있다 : String provider = myLocationManager.getBestProvider(criteria,true); 그 코드에 추가해야한다.

내부에 무엇이 있는지 확인할 때 항상 null 값이 표시됩니다. 이유는 분명하지 않습니다.

내 코드는 다음과 현재 같습니다

public void getOwnLngLat(){ 
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); 
final LocationListener locationListener = new LocationListener(){ 

public void onLocationChanged(Location location) { 
    // TODO Auto-generated method stub 
    longitude="" + location.getLongitude(); 
    latitude="" + location.getLatitude(); 
} 

public void onProviderDisabled(String provider) { 
    // TODO Auto-generated method stub 

} 

public void onProviderEnabled(String provider) { 
    // TODO Auto-generated method stub 

} 

public void onStatusChanged(String provider, int status, 
       Bundle extras) { 
    // TODO Auto-generated method stub 

    }   
}; 
locationManager.requestLocationUpdates(locationManager.getBestProvider(new Criteria(), true), 2000, 10, locationListener); 
} 

답변

2

당신이 LocationManagerrequestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener) 방법을 사용할 수있는 특정 공급자로부터 업데이트를하십시오. 사용 가능한 공급자 목록은 getProviders(boolean enabledOnly) 메서드를 사용하여 얻을 수 있습니다.

+0

업데이트가 있다면 무엇을 의미합니까? (영어는 제 모국어가 아닙니다) 저는 현재 위치의 위도와 경도를 얻고 싶습니다. 다른 예를 발견했습니다. http://stackoverflow.com/questions/3145089/what-is-the-simplest-andmost-robust-way-to-get-the-users-current-location-in-/3145655 # 3145655 이것을 구현하면 앞으로 도움이 될 것입니까? – Hannelore

+0

위치 제공 업체 (예 : GPS)가 LocationListener 객체에 위치 업데이트 (위도, 경도, 시간, 정확도 등)를 제공합니다. 이 업데이트는 requestLocationUpdates 메서드를 호출 할 때 시작되며 removeUpdates 메서드를 호출 할 때까지 주기적으로 계속됩니다. –

3

locationmanagers getbestprovider 메소드를 사용하면 기준에 가장 일치하는 위치 제공 업체를 간단히 얻을 수 있습니다. 특정 위치 공급자를 얻으려면 getProvider 메서드를 사용하십시오. 매개 변수는 getProviders 메소드의 결과 중 하나 여야합니다. 일부 링크 : http://developer.android.com/guide/topics/location/obtaining-user-location.html http://developer.android.com/reference/android/location/LocationManager.html

+0

잘 이해하면 GPS가 사용 설정되지 않은 경우 앱에서 자동으로 Wi-Fi를 선택합니다 (사용 설정 여부). – Hannelore

+0

네, 가지고 있어요! getProviders 메소드 (매개 변수 true!)를 사용하여 사용 가능한 위치 공급자를 확인하십시오. – arnodenhond

+0

나는 내 삼성 갤럭시 에이스에서 이걸 테스트 해봤는데, 내 GPS를 끄고 내 WiFi를 켜면 (내가 열린 와이파이에 연결되어있다.), 내 P- 변수는 널이다. – Hannelore