2012-08-29 4 views
6

위치 수정 프로그램을 다운로드 할 때 Android LocationManager가 때때로 멀티 메가 바이트의 인터넷 데이터를 사용합니까? 그렇다면 어떤 상황에서? LocationManager를 사용하는 앱에 인터넷에 액세스 할 수있는 명시적인 권한이없는 경우에도 문제가 발생합니까?Android LocationManager의 인터넷 데이터 사용

최근 안드로이드 4.0.4에서 삼성 갤럭시 노트의 설정 -> "데이터 사용"화면에서보고 한 "안드로이드 OS"에서 사용하는 인터넷 데이터가 때때로 10 메가 바이트 또는 하루 더. 실험을 통해이 데이터 사용은 필자가 작성한 앱을 실행하고 위치 관리자가 제공 한 GPS 위치 데이터를 사용할 때만 발생합니다. 이 앱이 실행되지 않을 때 "Android OS"는 하루에 수 킬로바이트의 데이터 만 사용합니다.

앱의 매니페스트에서 유일한 사용 권한은 "android.permission.ACCESS_FINE_LOCATION"및 "android.permission.WRITE_EXTERNAL_STORAGE"입니다. 인터넷에 접속할 수있는 권한이 없습니다.

활동의 ONSTART() 메소드는 코드를 포함하는 다음 ignoreGPS 플래그를 끌 때

  if (!mapview .ignoreGPS) { 
      lm.requestLocationUpdates(LocationManager. GPS_PROVIDER , gpsMinTime , gpsMinDistance , this); 
    }  

비슷한 코드가 호출됩니다.

또한 코드를 포함하는 gotoLastLocation() 메소드가 다음 ignoreGPS 플래그가 오프 토글이 메소드는 드물게라고하지

  Location l = lm.getLastKnownLocation(LocationManager. GPS_PROVIDER); 

      if (l == null) { 
       l = lm .getLastKnownLocation(LocationManager. NETWORK_PROVIDER); 
      } 

, 또는 사용자가 마지막으로 이동하는 메뉴 옵션을 선택하면 알려진 위치.

거의 호출되지 않는 메서드 외에도 "NETWORK_PROVIDER"에 대한 참조가 없습니다.

GPS_PROVIDER는 기본적으로 "보조 GPS"를 사용합니까? 그렇다면 다중 메가 바이트 데이터를 사용할 수 있습니까? 인터넷 사용 권한이없는 경우에도?

GPS_PROVIDER가 GPS 신호에서 수정 사항을 가져올 수없는 경우 LocationManager는 기본적으로 휴대 전화 네트워크를 사용합니까? 앱에 네트워크 권한이없는 경우에도? 이것은 인터넷 데이터 액세스로 전화 공급자에 의해 계산됩니까?

+0

[이] (http://developer.android.com/training/efficient-downloads/ index.html)은 귀하의 이익과 관련이 있습니다. – Josh

+0

고마워요, 조쉬, 제안을 위해,하지만 저에게 도움이되는 것을 볼 수 없습니다. 내가 놓친 게 있니? 내 앱은 인터넷에 액세스 할 수있는 권한이 없으며 명시 적 다운로드를 요청하지 않습니다. 그러나 그것은 멀티 메가 바이트의 데이터를 소비하는 것처럼 보입니다 ... 나는 Assisted GPS를 사용해야 만한다고 생각합니다. 내 문제는 이것을 방지하거나 제한하는 방법입니다. – prepbgg

답변

1

절대 지원 데이터를 다운로드하는 SUPL 프로토콜은 수 킬로바이트의 데이터 만 사용합니다. 하루 동안 많이 실행하더라도 브라우저 사용량과 비교하면별로 도움이되지 않습니다.

NETWORK_PROVIDER을 사용할 때 Google에서 가끔씩 WiFi 데이터 및 애플리케이션 사용을 업로드합니다 (알고 있습니다.). 그러나 그것조차 많지 않습니다.

백그라운드 프로세스를 모두 종료하거나 원하지 않는 응용 프로그램을 제거하는 것이 좋습니다. 당신이지도 타일 및 위성 이미지를 다운로드하는 MapView을 사용할 수

내 추측이다 -이 데이터가 무거운

+0

답장을 늦게해서 죄송합니다. 나 멀리 있었어. REL SUPL : 내 앱이 매 2 초마다 위치 업데이트를 요청하므로 (맵에서 원활하게 업데이트되도록) 모든 요청에 ​​SUPL 프로토콜이 사용되는 경우 인터넷 액세스는 시간당 60 x 30 x "수 킬로바이트"가 될 수 있습니다. 이것이 대답일까요? 인터넷에 접속할 수있는 권한이 없더라도 SUPL이 사용됩니까? 백그라운드 프로세스 다시 : 내 앱이 실행 중일 때만 인터넷에 액세스 할 수있는 프로세스는 무엇입니까? 지도 타일 다시 매핑 : 내 앱은 기기에 저장된지도 타일 만 사용합니다. – prepbgg

관련 문제