2013-05-27 4 views
0

삼성 갤럭시 탭 (GPS-P7310)의 GPS 구성 요소에 이상한 문제가 있습니다. GPS는 Google지도에서 정상적으로 작동하지만 내 위치 정보를 제공하지 않습니다. 자신의 응용 프로그램. 내 응용 프로그램은 내 삼성 갤럭시 S2에서 잘 작동하지만.내 응용 프로그램에서 GPS가 작동하지 않지만 Google지도에서 작동합니다.

LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); 
Location currentLocation = locationManager.getLastKnownLocation(locationManager.getBestProvider(new Criteria(), false)); 
// Constantly update the location 
locationManager.requestLocationUpdates(locationManager.getBestProvider(new Criteria(), false), 0, 0, listener); 

을하지만, 내가 할 모든 위치로 null하고 콜백 리스너가 호출되지 않습니다 :

I는 다음과 같이 위치 서비스를 호출하고 있습니다.

Tablet은 Android 4.2.2에서 CyanogenMod 10.1-20130512-UNOFFICIAL-p5wifi를 실행 중입니다. 위치 정보 액세스가 사용 설정되었습니다. 그렇지 않으면 Google지도가 작동하지 않습니다.

내 애플은 매니페스트에 설정된 다음과 같은 권한이 :

  • ACCESS_FINE_LOCATION
  • ACCESS_COARSE_LOCATION
  • 인터넷

모든 아이디어, 나는이 장치에 어떤 위치를 얻을 이유는 무엇입니까?

+0

이 장치는 안테나가 좋지 않으며 GPS 위치가 없습니다. 위의 코드는 GPS 위치 정보 (네트워크 없음)에만 해당됩니다. 다른 쪽의 GMaps는 NETWORK_PROVIDER를 사용 했으므로 작동했습니다. 우수한 자습서는 http://www.androidhive.info/2012/07/android-gps-location-manager-tutorial/를 참조하십시오. –

답변

1

솔루션 : 기준을 결정하여 최상의 공급자를 선택하는 대신 GPS을 사용할 수 있습니다.

예 :

교체

Location currentLocation = locationManager.getLastKnownLocation(locationManager.getBestProvider(new Criteria(), false)); 
// Constantly update the location 
locationManager.requestLocationUpdates(locationManager.getBestProvider(new Criteria(), false), 0, 0, listener); 

Location currentLocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
// Constantly update the location 
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, listener); 

Explaination :

응용 프로그램의 사용 사례에 따라 당신은 정확성, 전력 요구 사항, 금전적 비용과 같은 몇 가지 입력 기준을 제공하는 등, 및하도록 할 수 있습니다, 당신은 즉 LocationManager.GPS_PROVIDER 또는 LocationManager.NETWORK_PROVIDER

또는 특정 위치 제공자를 선택할 수 있습니다 안드로이드는 가장 가까운 위치 제공자를 결정

// Retrieve a list of location providers that have fine accuracy, no monetary cost, etc 
Criteria criteria = new Criteria(); 
criteria.setAccuracy(Criteria.ACCURACY_FINE); 
criteria.setCostAllowed(false); 
String providerName = locManager.getBestProvider(criteria, true); 
//and then you can make location update request with selected best provider 
locationManager.requestLocationUpdates(providerName, 0, 0, listener); 

참조

나는 그것이 도움이 될 것입니다 희망

에 대한 how to use locationmanager, how to specify Criteriahow getBestProvider method works에서보세요!