SHARE
TWEET

Untitled

a guest Apr 21st, 2017 46 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. public boolean checkSetting(){
  2.     LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
  3.     return manager.isProviderEnabled(LocationManager.GPS_PROVIDER);
  4. }
  5.    
  6. startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS));
  7.    
  8. mGoogleApiClient = new GoogleApiClient.Builder(context)
  9.      .addApi(LocationServices.API)
  10.      .addConnectionCallbacks(this)
  11.      .addOnConnectionFailedListener(this)
  12.      .build()
  13.  ...
  14. mGoogleApiClient.connect();
  15.    
  16. LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder()
  17.      .addLocationRequest(mLocationRequestHighAccuracy)
  18.      .addLocationRequest(mLocationRequestBalancedPowerAccuracy);
  19.    
  20. PendingResult<LocationSettingsResult> result =
  21.          LocationServices.SettingsApi.checkLocationSettings(mGoogleClient, builder.build());
  22.    
  23. result.setResultCallback(new ResultCallback<LocationSettingsResult>() {
  24.      @Override
  25.      public void onResult(LocationSettingsResult result) {
  26.          final Status status = result.getStatus();
  27.          final LocationSettingsStates = result.getLocationSettingsStates();
  28.          switch (status.getStatusCode()) {
  29.              case LocationSettingsStatusCodes.SUCCESS:
  30.                  // Todas as definições do dispositivo estão configuradas para satisfazer as requeridas.
  31.  
  32.                  ...
  33.                  break;
  34.              case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:
  35.                  // As definições do dispositivo não satisfazem as requeridas.
  36.                  //Mas podem ser alteradas pelo utilizador mostrando um dialog.
  37.                  try {
  38.                      // Mostra o dialog chamando startResolutionForResult(),
  39.                      // o resultado deverá ser verificado em onActivityResult().
  40.                      status.startResolutionForResult(
  41.                          OuterClass.this,
  42.                          REQUEST_CHECK_SETTINGS);
  43.                  } catch (SendIntentException e) {
  44.                      // Ignore the error.
  45.                  }
  46.                  break;
  47.              case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE:
  48.                  // As definições do dispositivo não satisfazem as requeridas, não havendo forma de as resolver.
  49.                  // Nenhum dialog será mostrado.
  50.                  ...
  51.                  break;
  52.          }
  53.      }
  54.  });
  55.    
  56. @Override
  57.  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  58.      final LocationSettingsStates states = LocationSettingsStates.fromIntent(intent);
  59.      switch (requestCode) {
  60.          case REQUEST_CHECK_SETTINGS:
  61.              switch (resultCode) {
  62.                  case Activity.RESULT_OK:
  63.                      // Todas as alterações necessárias foram feitas
  64.                      ...
  65.                      break;
  66.                  case Activity.RESULT_CANCELED:
  67.                      // O usuário cancelou o dialog, não fazendo as alterações requeridas
  68.                      ...
  69.                      break;
  70.                  default:
  71.                      break;
  72.              }
  73.              break;
  74.      }
  75.  }
RAW Paste Data
Top