Je veux suivre l'emplacement de l'utilisateur en continu comme un service d'arrière-plan dans Android, je suis en mesure de le faire en utilisant les services d'arrière-plan et de réception réseau et fournisseur de GPS en fonction de la disponibilité.Basculer entre le réseau et le fournisseur GPS sur le service pas sur l'activité
backgroundService.java
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
mylistner = new NewLocationListener(getBaseContext());
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setPowerRequirement(Criteria.POWER_LOW);
criteria.setCostAllowed(true);
LocationManager locManager = (LocationManager) getBaseContext()
.getSystemService(Context.LOCATION_SERVICE);
String bestProvider = locManager.getBestProvider(criteria, false);
Toast.makeText(getBaseContext(), "Best Provider "+bestProvider, Toast.LENGTH_SHORT).show();
locManager.requestLocationUpdates(bestProvider, 1000, 5, mylistner);
Toast.makeText(getBaseContext(), "Successfully Called", Toast.LENGTH_SHORT).show();
return START_STICKY;
}
Dans un premier temps bestProvider auront GPS ou réseau, mais si c'est GPS d'abord, puis si l'utilisateur se le GPS, il devrait me donner de coordonnées utilisant le réseau. Encore une fois, si l'utilisateur bascule sur GPS, le fournisseur de localisation doit provenir du GPS.
sur le service il y a onProviderEnabled et la méthode onProviderDisabled comment les utiliser dans le but
comme indiqué en tant que solution dans beaucoup question similaire dans le débordement de la pile je ne veux pas envoyer le réseau et fournisseur de GPS du début i vouloir passer selon la disponibilité. est-il réalisable en service. Merci à l'avance
Merci pour votre temps, mais veulent savoir ici que vous utilisez également réseau et GPS offrent en même temps ne peux pas qu'il soit fait un à la fois . –
Quand j'appelle gtLocation() quel que soit le réseau disponible je l'utilise sinon j'utilise le 3G/... vous pouvez le changer par exemple avec un paramètre lors de l'appel de la fonction (boolean useNetwork) par exemple alors faites un if (useNetwork)/autre ? –