2014-06-19 4 views
0

GPS 속도를 모니터링하는 간단한 응용 프로그램을 개발 중입니다. 오늘 아침에 내 응용 프로그램을 테스트 할 GPS 위치 조종 장치 몇 개를 설치했지만 아무도 잘 작동하지 않는 것 같았습니다. 그들 모두를 제거하고 이것이 어떤 점에서 관련이 있는지 모르겠다. ADB를 사용하는 나의 N4에서 내 애플리케이션을 디버깅 할 때 GPS가 .requestLocationUpdates를 호출 할 때 켜지지 않는다. 알림 막대에 GPS 아이콘이 표시되지 않고 데이터가 검색되지 않고 onLicationChanged가 호출되지 않고 .isProvider enabled 함수가 false를 반환하면 ..GPS가 LocationManager/LocationListener를 사용하여 켜지지 않습니다.

가능한 가장 간단한 형태로 응용 프로그램을 재구성합니다. onCreate 오버라이드에 android.developper 설명서에서 직접 복사 한 코드를 호출합니다.

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_speed_monitoring); 
// Acquire a reference to the system Location Manager 
LocationManager locationManager = (LocationManager) this .getSystemService(Context.LOCATION_SERVICE); 
// Define a listener that responds to location updates 
LocationListener locationListener = new LocationListener() { 
    public void onLocationChanged(Location location) { 

     location.getLatitude(); 
     Toast.makeText(getApplicationContext(), "Current speed:" + location.getSpeed(), Toast.LENGTH_SHORT).show(); 
    } 
    public void onStatusChanged(String provider, int status, Bundle extras) { } 
    public void onProviderEnabled(String provider) { } 
    public void onProviderDisabled(String provider) { } 
}; 
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 1000, locationListener); 
} 

이제 내 코드 또는 내 안드로이드 장치 또는 둘 다와 관련이 있는지 궁금합니다. 테스트를 거친 Google지도와 GPS 아이콘이 표시되어 문제없이 내 위치를 찾았습니다. 지금은 안드로이드 시뮬레이터에서 테스트 중이며 계속 업데이트 될 것입니다.

아, 그리고 나는 안드로이드 스튜디오를 안하고 있습니다.

감사합니다.

EDIT : GPS 아이콘이 에뮬레이터에서 트리거되었지만 휴대 전화의 설정 일 수 있습니다. 원인은 무엇일까요? 그리고 왜 다른 GPS 응용 프로그램이 작동합니까?

편집 2 : 내 응용 프로그램이 에뮬레이터에 완벽하게 잘 작동, 텔넷 지리적 수정을 통해 위치를 업데이트하고 모든 매력처럼 작동합니다 ..

답변

0

에 아주 간단한 해결책을 살펴보고 당신이 이미 간주하지만, 전화를 다시 시작하는 것은 때때로 나를 위해 마법을 수행 한 때 미안 해요.

약간의 설명 : 나는 위치 인식 서비스에 대해 2 개월 동안 일했고, 나는 그런 종류의 오류도 또한 우연히 발견했다. 어떤 시점에서 Google은 백그라운드에서 라이브러리를 업데이트하기 때문에 재시작만으로도 다시 작동 할 수 있습니다. 6 개의 Nexus5 휴대 전화에 똑같은 오류가 발생하여 다시 시작하면 모든 작업이 완료되었습니다.

+0

이것은 불행한 해결책입니다 ... – WaveZ

0

이 완전히 귀하의 질문에 대답하지 않을 수도 있지만 도움이 될 수 있습니다 :

  1. GPS 관련 코드를 테스트하려면 http://www.genymotion.com/을 시도해 보시기 바랍니다. 가장 빠른 안드로이드 에뮬레이터이며 멋진 GPS 테스트 위젯이 있습니다. 무료 버전이 있습니다.
  2. 올바른 안드로이드 권한 활동이 실행되는 동안 LocationListener이 존재하는 유일한 것 즉 ACCESS_COARSE_LOCATIONACCESS_FINE_LOCATION
  3. 주를 가지고 있는지 확인하십시오. 이것은 아마도 당신이 원하는 어떤 것이 아닙니다. 다른 곳에서의 위치 변경 등록을 고려해야합니다.
  4. 또한 onStatusChanged, onProviderEnabled, onProviderDisabled의 결과를 로깅하고 거기에 관련 정보가 있는지 확인하십시오.
  5. 마지막으로,있을 수 있습니다에게이 질문 LocationListener of NETWORK_PROVIDER is enabled but , onLocationChanged is never called