2014-06-17 3 views
1

LocationManager.NETWORK_PROVIDER 기반 위치는 연결된 셀 ID를 Geolocation 서버에 보내는 Android 기반입니다. 이것은 활동적인 interent conncetion을 필요로합니다. 셀 ID를 쿼리하면 서버에 저장된 타워의 대략적인 위치가 반환됩니다.Android : 셀 ID 기반 위치

locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); 
    locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, TWO_MINUTES, MIN_DISTANCE, mLocation); 
    Location current = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 
    if(current != null) 
     Log.d("Location", "Lat: " + current.getLatitude() + ", Lon: " + current.getLongitude() + ", Acc: " + current.getAccuracy()); 

이 코드를 사용하면 서버에서 위치를 얻을 수 있습니다. 그러나 나는 그것을하는 메커니즘을 이해하고 싶다.

필자는 안드로이드 소스 코드에서 시스템이 행운을 빌리지 않고 서버로 요청을 보내는 곳을 찾고있었습니다.

Ive는 위치 및 서비스 폴더의 프레임 워크를 검색했습니다. 미리 KitKat 장치를 융합 공급자가있는 KitKat으로 코딩하면이 과정이 단순 해집니다.

이 어떤 도움이 기능은 서비스 느릅 나무를 재생 구글에서 구현 사힐

답변

0

을 이해할 수있을 것이다 것은 오픈 소스하지 않고 인터넷 연결을 필요로한다. 대답은 내가 구글 playservices이 위치 업데이트를 수행하는 방법을 알고이 donot

PhoneStateListener mListener = new PhoneStateListener() { 
    @Override 
    public void onCellLocationChanged(android.telephony.CellLocation androidItem) { 
     .... 
    } 

    @Override 
    public void onCellInfoChanged(List<CellInfo> androidCellInfo) { 
     .... 
    } 
}; 

출처

안드로이드 응용 프로그램

telephonyManager.listen(mListener, PhoneStateListener.LISTEN_CELL_LOCATION | PhoneStateListener.LISTEN_CELL_INFO); 

을 통해 세포 정보 업데이트를 얻을 수 있습니다. 어쩌면 그들은 자신의 locationmanager-implementation을 가지고있을 것입니다.

+0

위치를 가져 오는 함수가 googleplay lib에 있습니다. 고마워. –