전화 (System -> Settings -> Location
)에서 위치 서비스가 사용 중지되었는지 찾기 위해 GooglePlayServices
또는 LocationClient
을 사용하고 있습니까?isGooglePlayServicesAvailable 및 LocationClient
2
A
답변
6
나는 질문에 대답하기에는 너무 늦었다 고 생각합니다. 하지만 괜찮아. 따라서 새로운 API LocationSettingsRequest
을 사용하면 클릭 한 번으로 앱 내에서 위치를 사용할 수 있습니다. 그렇게하기 위해;
GoogleApiClient mGoogleApiClient = new GoogleApiClient.Builder(this)
.addApi(LocationServices.API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this).build();
mGoogleApiClient.connect();
GoogleApiClient
를 초기화 그리고 다음과 같이 초기화 된 LocationRequest 확인 :LocationRequest mLocationRequest = LocationRequest.create();
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
mLocationRequest.setInterval(Util.UPDATE_INTERVAL_IN_MILLISECONDS);
mLocationRequest.setFastestInterval(Util.FASTEST_UPDATE_INTERVAL_IN_MILLISECONDS);
}
지금 LocationSettingsRequest를 통해 위치 설정 요청을합니다.
LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder()
.addLocationRequest(mLocationRequest);
//**************************
builder.setAlwaysShow(true); //this is the key ingredient
//**************************
PendingResult<LocationSettingsResult> result =
LocationServices.SettingsApi.checkLocationSettings(mGoogleApiClient, builder.build());
result.setResultCallback(locationSettingsResultCallback);
그래서, 바로 당신이 LocationSettingsRequest을 같이 그것은 팝업 것 같은 대화 :
그래서 사용자가 선택한 어떤 옵션을 처리하기 위해, 당신은을 구현해야합니다 콜백은 각 옵션에 아래와 같이 처리합니다 :
ResultCallback<LocationSettingsResult> locationSettingsResultCallback = new ResultCallback<LocationSettingsResult>() {
@Override
public void onResult(LocationSettingsResult result) {
final Status status = result.getStatus();
final LocationSettingsStates state = result.getLocationSettingsStates();
switch (status.getStatusCode()) {
case LocationSettingsStatusCodes.SUCCESS:
// All location settings are satisfied. The client can initialize location
// requests here.
//startLocationUpdates();
break;
case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:
// Location settings are not satisfied. But could be fixed by showing the user
// a dialog.
try {
// Show the dialog by calling startResolutionForResult(),
// and check the result in onActivityResult().
status.startResolutionForResult(
PickupLocationActivity.this, 1000);
} catch (IntentSender.SendIntentException e) {
// Ignore the error.
}
break;
case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE:
// Location settings are not satisfied. However, we have no way to fix the
// settings so we won't show the dialog.
break;
}
}
};
참조 :https://developers.google.com/android/reference/com/google/android/gms/location/SettingsApi
관련 문제
- 1. isGooglePlayServicesAvailable 반환 9
- 2. isGooglePlayServicesAvailable (컨텍스트 컨텍스트)의 컨텍스트
- 3. LocationClient getLastLocation() null을 반환합니다.
- 4. LocationClient WakeLock을 사용하는 타이머
- 5. locationListener + 관리자와 GoogleServices + locationClient
- 6. Android LocationClient onDisconnect가 호출되지 않음
- 7. 새로운 locationclient (this, this, this) 컴파일 오류
- 8. LocationClient requestUpdates onLocationChanged는 결코 호출되지 않습니다
- 9. LocationClient (MainActivity, MainActivity, MainActivity) 생성자가 정의되지 않았습니다.
- 10. LocationClient Google에서 GPS 데이터를 사용하지 않는 서비스
- 11. LocationClient getLastLocation 내 조각에 null을 반환합니다.
- 12. getSystemService (LOCATION_SERVICE)가 LocationClient 인 경우
- 13. LocationServices에서 getTriggeringGeofences 및 getGeofenceTransition
- 14. GoogleApiClient 및 GooglePlayServicesClient : 관심사를 분리하여 보존 할 수 있습니까?
- 15. Observable-based API 및 구독 취소 문제
- 16. 현재 위치와 일부 위치 간의 거리에 따른 LocationRequest의 간격 변경
- 17. 위치 없음 Google Play 위치 서비스를 사용할 때 부담이 있습니까?
- 18. 동 기적으로 마지막으로 알려진 위치 가져 오기
- 19. 여러 위치 클라이언트가 간섭하고 있습니까?
- 20. Android 재생 서비스 6.5 : LocationClient가 누락되었습니다.
- 21. Google Play 서비스를 사용하여 활동 인식 및 위치 업데이트
- 22. 현재 위치에서 5 마일 이내에있는 json에서 Google지도 (위도 및 경도)로 위치를로드하는 방법
- 23. 위치 클라이언트 android
- 24. IntentService의 비동기 호출
- 25. 서비스 내의 onLocationChanged에서 UI로 GPS 좌표를 보내는 가장 좋은 방법은 무엇입니까?
- 26. 대괄호 ([및 [등호 = 및 ==?
- 27. "및"및 꼬리 재귀
- 28. Mongodb 및 PHP $ 및
- 29. [Android] Google Play 서비스를 업데이트하지 않으면이 앱이 실행되지 않습니다.
- 30. $ * 및 $ @