Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public boolean checkSetting(){
- LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
- return manager.isProviderEnabled(LocationManager.GPS_PROVIDER);
- }
- startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS));
- mGoogleApiClient = new GoogleApiClient.Builder(context)
- .addApi(LocationServices.API)
- .addConnectionCallbacks(this)
- .addOnConnectionFailedListener(this)
- .build()
- ...
- mGoogleApiClient.connect();
- LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder()
- .addLocationRequest(mLocationRequestHighAccuracy)
- .addLocationRequest(mLocationRequestBalancedPowerAccuracy);
- PendingResult<LocationSettingsResult> result =
- LocationServices.SettingsApi.checkLocationSettings(mGoogleClient, builder.build());
- result.setResultCallback(new ResultCallback<LocationSettingsResult>() {
- @Override
- public void onResult(LocationSettingsResult result) {
- final Status status = result.getStatus();
- final LocationSettingsStates = result.getLocationSettingsStates();
- switch (status.getStatusCode()) {
- case LocationSettingsStatusCodes.SUCCESS:
- // Todas as definições do dispositivo estão configuradas para satisfazer as requeridas.
- ...
- break;
- case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:
- // As definições do dispositivo não satisfazem as requeridas.
- //Mas podem ser alteradas pelo utilizador mostrando um dialog.
- try {
- // Mostra o dialog chamando startResolutionForResult(),
- // o resultado deverá ser verificado em onActivityResult().
- status.startResolutionForResult(
- OuterClass.this,
- REQUEST_CHECK_SETTINGS);
- } catch (SendIntentException e) {
- // Ignore the error.
- }
- break;
- case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE:
- // As definições do dispositivo não satisfazem as requeridas, não havendo forma de as resolver.
- // Nenhum dialog será mostrado.
- ...
- break;
- }
- }
- });
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- final LocationSettingsStates states = LocationSettingsStates.fromIntent(intent);
- switch (requestCode) {
- case REQUEST_CHECK_SETTINGS:
- switch (resultCode) {
- case Activity.RESULT_OK:
- // Todas as alterações necessárias foram feitas
- ...
- break;
- case Activity.RESULT_CANCELED:
- // O usuário cancelou o dialog, não fazendo as alterações requeridas
- ...
- break;
- default:
- break;
- }
- break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement