0

API 21을 사용하여 작년에 구현 된 GPS 업데이트를 수신하는 앱이 있습니다. LG G4와 같은 Lollipop을 실행하는 여러 Android 휴대 전화에서 테스트되었습니다. 이제 마쉬 멜로우가 장착 된 LG G5에 GPS를 설치했는데 GPS 업데이트가 수신되지 않습니다. 즉, onLocationChanged()는 절대 호출되지 않습니다.Marshmallow에서 API 21에 LocationListener 사용

권한이 부여된다 (휴대 전화의 설정에 앱보기 위치 권한을 보여줍니다) 다음과 같은 문장은 true

checkCallingOrSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED 

의 AndroidManifest.xml이다이 라인을 포함

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-feature android:name="android.hardware.location.gps" /> 

코드 I를 다음과 같이 사용합니다 :

locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); 

locationListener = getLocationListener(); 
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener); 


private LocationListener getLocationListener() { 
     LocationListener locationListener = new LocationListener() { 
      public void onLocationChanged(Location location) { 
       handleLocationChange(); 
      } 
      public void onStatusChanged(String provider, int status, Bundle extras) { } 

      public void onProviderEnabled(String provider) { } 

      public void onProviderDisabled(String provider) { } 
    }; 
    return locationListener; 
} 

ried NETWORK_PROVIDER도 마찬가지입니다. 성공하지 못했습니다.

무엇이 여기에 있습니까?

+0

앱에 위치 정보 액세스 권한이 있는지 여부에 대한 권한을 확인 하시겠습니까? 기기가 액세스를 차단 한 경우 일 수 있습니다. – Kaushal28

+0

권한이 부여됩니다 (휴대 전화 설정의 App보기에는 위치 권한이 표시됨). 다음 문은 'true'입니다. checkCallingOrSelfPermission (Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PE' – Onur

답변

0

GPS 센서가 휴대 전화를 업데이트하지 않는다는 것을 알게되었습니다. 예를 들어 위치 정밀도를 GPS 센서로만 제한하는 경우 Google지도는 절대 위치 정보를 얻지 못합니다.

전화를 인터넷에 연결하면 NETWORK_PROVIDER에 위치 정보가 제공됩니다.

관련 문제