Je fais une application dans laquelle le clic de bouton passe de 1 activité à la 2e activité sur laquelle j'ai besoin de GPS pour être actif, j'ai utilisé une boîte d'alertdialog pour activer le GPS en cliquant sur Paramètres, il s'ouvrira au réglage et Si je l'active la boîte de dialogue IT DIALOGBOX Désapper et GPS Commencez à travailler, mais si je appuyais sur le bouton Retour sans activer le GPS Ça fonctionne et que l'activité commence, je souhaite vérifier si GPS est activé si ce n'est pas la 2e activité
aucune erreur de venir Mais juste sur le dos, appuyez sur le réglage sans l'activer, il démarrera une activité sans erreur et toujours GPS est désactivé. P>
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main3); textView1 = (TextView) findViewById(R.id.location_view); button1 = (Button) findViewById(R.id.camera); button2 = (Button) findViewById(R.id.upload); editText1 = (EditText) findViewById(R.id.remarks); imageView11 = (ImageView) findViewById(R.id.image1); button1.setOnClickListener(this); button2.setOnClickListener(this); locationText = (TextView) findViewById(R.id.location_view); if (ContextCompat.checkSelfPermission(getApplicationContext(), android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat .checkSelfPermission(getApplicationContext(), android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{android.Manifest.permission .ACCESS_FINE_LOCATION, android.Manifest.permission.ACCESS_COARSE_LOCATION}, 101); } getLocation(); } public void getLocation() { try { locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 5000, 5, (LocationListener) this); } catch (SecurityException e) { e.printStackTrace(); } } @Override public void onBackPressed() { super.onBackPressed(); } @Override public boolean onOptionsItemSelected(@NonNull MenuItem item) { switch (item.getItemId()){ case R.id.item1: Toast.makeText(getApplicationContext(),"Account Clicked",Toast.LENGTH_SHORT).show(); return true; case R.id.item2: Toast.makeText(getApplicationContext(),"Account Clicked",Toast.LENGTH_SHORT).show(); return true; case R.id.item3: AlertDialog.Builder alerDialogbuilder = new AlertDialog.Builder(Main3Activity.this); alerDialogbuilder.setTitle("Confirm Logout"); alerDialogbuilder.setIcon(R.drawable.ic_error_black_24dp); alerDialogbuilder.setMessage("Are You Sure You Want to Logout "); alerDialogbuilder.setMessage("Logingout will need id password again"); alerDialogbuilder.setCancelable(false); alerDialogbuilder.setPositiveButton("yes", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { Intent intents = new Intent(Main3Activity.this,MainActivity.class); startActivity(intents); Toast.makeText(getApplicationContext(),"Successfull Logout",Toast.LENGTH_SHORT).show(); } }); alerDialogbuilder.setNegativeButton("No", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { Toast.makeText(getApplicationContext(),"Logout Canceled",Toast.LENGTH_SHORT).show(); } }); AlertDialog alertDialog = alerDialogbuilder.create(); alertDialog.show(); return true; default:return super.onOptionsItemSelected(item); } } private void camera(){ Intent intents = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intents,CAMERA_REQUEST); } @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode==CAMERA_REQUEST&&resultCode== Activity.RESULT_OK){ Bitmap photo= (Bitmap)data.getExtras().get("data"); imageView11.setImageBitmap(photo); } } private void upload(){ AlertDialog.Builder alerDialogbuilder = new AlertDialog.Builder(Main3Activity.this); alerDialogbuilder.setTitle("Confirm Upload ?"); alerDialogbuilder.setIcon(R.drawable.ic_error_black_24dp); alerDialogbuilder.setMessage("Are You Sure You Want to Upload Data"); alerDialogbuilder.setCancelable(false); alerDialogbuilder.setPositiveButton("yes", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { Toast.makeText(getApplicationContext(),"File Uploading...",Toast.LENGTH_SHORT).show(); } }); alerDialogbuilder.setNegativeButton("No", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { Toast.makeText(getApplicationContext(),"Recheck Data",Toast.LENGTH_SHORT).show(); } }); AlertDialog alertDialog = alerDialogbuilder.create(); alertDialog.show(); } @Override public void onClick(View view) { if(view==button1){ camera(); } else if (view == button2){ upload(); } } @Override public void onLocationChanged(Location location) { double lati = location.getLatitude(); double longi = location.getLongitude(); locationText.setText("Latitude: " + lati + "\n Longitude: " + longi); } @Override public void onStatusChanged(String s, int i, Bundle bundle) { Toast.makeText(this, "Please Enable GPS and Internet", Toast.LENGTH_SHORT).show(); } @Override public void onProviderEnabled(String s) { } @Override public void onProviderDisabled(String s) { AlertDialog.Builder alerDialogbuilder = new AlertDialog.Builder(Main3Activity.this); alerDialogbuilder.setTitle("Enable Gps to Continue"); alerDialogbuilder.setIcon(R.drawable.ic_error_black_24dp); alerDialogbuilder.setMessage("If You Want To Enable Gps Go To Settings"); alerDialogbuilder.setCancelable(false); alerDialogbuilder.setPositiveButton("Settings", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { Intent intent1 = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); startActivity(intent1); Toast.makeText(getApplicationContext(),"Enable Gps..",Toast.LENGTH_SHORT).show(); } }); alerDialogbuilder.setNegativeButton("No", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { finish(); Toast.makeText(getApplicationContext(),"Uploading Failed,Enable Gps",Toast.LENGTH_SHORT).show(); } }); AlertDialog alertDialog = alerDialogbuilder.create(); alertDialog.show(); } }
3 Réponses :
implémenter ci-dessous méthode pour vérifier l'état de la vérification -:
public boolean CheckGpsStatus() { LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); boolean GpsStatus = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); return GpsStatus; }
Où mettre en œuvre ??
Pls vérifier mon code et m'aidez-moi que je serai très reconnaissant
Appelez cette méthode dans Oncreate (Bundle SavedInstancestate) dans une instruction de condition IF, s'il est vrai, obtenez l'emplacement autrement terminé. Vous pouvez demander une autorisation à nouveau ou accéder à la page de paramètres GPS de manière dynamique.
@ Darkwarrior Check Ma réponse Il vous guidera comment le faire.
protected LocationRequest locationRequest; public void checkForLocationRequest() { locationRequest = LocationRequest.create(); locationRequest.setInterval(MIN_UPDATE_INTERVAL); locationRequest.setNumUpdates(1); locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); // locationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY); } public void checkForLocationSettings() { try { LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder().addLocationRequest(locationRequest); builder.addLocationRequest(locationRequest); SettingsClient settingsClient = LocationServices.getSettingsClient(MainActivity.this); settingsClient.checkLocationSettings(builder.build()) .addOnSuccessListener((Activity) MainActivity.this, new OnSuccessListener<LocationSettingsResponse>() { @Override public void onSuccess(LocationSettingsResponse locationSettingsResponse) { // delay(1); //Setting is success... // Toast.makeText(SplashActivity.this, "Enabled the Location successfully. Now you can press the buttons..", Toast.LENGTH_SHORT).show(); } }) .addOnFailureListener((Activity) MainActivity.this, new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { int statusCode = ((ApiException) e).getStatusCode(); switch (statusCode) { case LocationSettingsStatusCodes.RESOLUTION_REQUIRED: try { // Show the dialog by calling startResolutionForResult(), and check the // result in onActivityResult(). ResolvableApiException rae = (ResolvableApiException) e; rae.startResolutionForResult((Activity) MainActivity.this, GET_PERMISSION_REQ_CODE); } catch (Exception ex) { new MyUtils().catchError(MainActivity.this, ex); } break; case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE: Toast.makeText(MainActivity.this, "Setting change is not available.Try in another device.", Toast.LENGTH_LONG).show(); } } }); } catch (Exception e) { new MyUtils().catchError(MainActivity.this, e); } } This Above code shows the popup for enable the gps if gps is not enabled and also gives you callback for success and failure
Okie Voici les deux méthodes euh ont défini séparément, je dois utiliser ceci où je veux le vérifier correctement ??
Travaillé pour moi mais monsieur j'ai mis à jour le code avec une commande corrompressée () à Onstatus a changé maintenant son fonctionnement, mais lorsque vous avez toujours appuyer sur le bouton Backbutton, sans que Backbutton, sans permettre à GPS qu'elle ouvre une activité, mais lorsque j'accepte GPS, puis nous appuyons sur le bouton GPS. revenez à nouveau à l'activité précédente
public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener ,OnMapReadyCallback,LocationListener{ protected static final String TAG = "MainActivity"; protected static final int REQUEST_CHECK_SETTINGS = 0x1; Marker mCurrLocationMarker; GoogleMap mgooglemap; private LocationManager locationManager; @Override public void onLocationChanged(Location location) { if (mCurrLocationMarker != null) { mCurrLocationMarker.remove(); } //Place current location marker LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude()); // MarkerOptions markerOptions = new MarkerOptions(); // markerOptions.position(latLng); // markerOptions.title("Current Position"); // markerOptions.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED)); // mCurrLocationMarker = mgooglemap.addMarker(markerOptions); //move map camera mgooglemap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng,16)); mgooglemap.getMaxZoomLevel(); // locationManager.removeUpdates(this); } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } @Override public void onProviderEnabled(String provider) { } @Override public void onProviderDisabled(String provider) { Toast.makeText(MainActivity.this, "Please Enable GPS", Toast.LENGTH_LONG).show(); //for you want to open Settings screen while(!onProviderEnabled()) { startActivityForResult(new Intent(android.provider.Settings.ACTION_SETTINGS), 0); } } The onProviderDisabled() of the above code will provide you the required flow.
mais cela ne fera que griller un texte pour activer GPS.Mais, je veux montrer le paramètre GPS dans les paramètres, puis vous ne pouvez pas revenir en arrière avec le bouton arrière sans permettre à GPS que je veux ce monsieur
J'ai eu le code monsieur mais que si j'ouvre l'activité et sans permettre mon GPS, cliquez sur le bouton de l'arrière, mon activité commence sans GPS
Je ne veux pas de mettre à jour dans mon programme, il suffit de besoin d'un code pour vérifier si GPS est activé ou non, sinon il se déplace vers l'emplacement suivant
Quel est le prochain emplacement?
Vérifiez la réponse mise à jour. C'est le moyen le plus possible d'obtenir la solution souhaitée
Sir in sur le fournisseur désactivé Il ouvrira la définition si je l'active si je l'active et appuyez sur la touche Retour, il apparaîtra à l'écran principal, mais si nous le permettrons, cela vient toujours à l'activité principale au lieu de rester sur la même activité.
Votre situation est la suivante: 1. Si GPS désactivé -> Ouvrir les paramètres -> Activé -> MainActivity. 2. Si GPS activé -> MainActivity. est-ce tellement ???
Je veux juste que mon application vérifie si GPS est activé ou non si son activé reste alors sur la même activité sinon il devrait revenir à l'activité précédente jusqu'à ce qu'il soit activé.
monsieur, j'ai juste besoin de vérifier si mon GPS I est actuellement actif ou non si actif continue si ce n'est pas le cas ne fonctionnera pas ou à aucune activité jusqu'à GPS est activé et rechérent
En bref si non activé GPS -> Retour à l'activité précédente ?? est ce bien?
1. Si GPS désactivé -> Ouvrir les paramètres -> Activé -> MainActivity. Si toujours sa personne handicapée si la personne revenait à l'activité sans l'activer, elle ne devrait pas fonctionner plus avant 2. Si GPS est activé -> MainActivity. est-ce tellement ???
monsieur, je n'ai besoin que de code de chèque pour vérifier si mon GPS est activé si je ne reste pas sur la même activité que j'utilise la commande de reprise de l'onpost dans laquelle il vérifie le GPS activé ou désactivé si désactivé il ne fonctionnera pas et s'il est activé sur CV STOPS et mon autre travaux commence
S'il vous plaît me fournir un ans de travail pour mettre à jour ou changer de code dans quelle classe s'il vous plaît