Advertisement
Guest User

Untitled

a guest
Apr 21st, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.04 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement