J'ai traversé le Tutoriel pour GeoFencing et j'ai une question à l'esprit. P >
GeoFencing vous oblige à surveiller en permanence l'emplacement de l'utilisateur? strong> p>
ou sera le STRY> EmplacementClientClient strong> auquel vous ajoutez la Geofence déclenche automatiquement lorsqu'une transition a été orcée? P>
Cela peut sembler une question évidente, mais le tutoriel n'a jamais mentionné quoi que ce soit sur la demande de mises à jour de localisation du gestionnaire de localisation. P>
3 Réponses :
public class MainActivity extends FragmentActivity implements OnMarkerDragListener { private GoogleMap googleMap; private int distance; private SupportMapFragment mapFragment; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); SupportMapFragment mapFragment = ((SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map)); googleMap = mapFragment.getMap(); googleMap.setOnMarkerDragListener(this); distance = 100; googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng( 26.788707, 75.828108), 15)); createGeofence(26.788707, 75.828108, distance, "CIRCLE", "GEOFENCE"); } private void createGeofence(double latitude, double longitude, int radius, String geofenceType, String title) { Marker stopMarker = googleMap.addMarker(new MarkerOptions() .draggable(true) .position(new LatLng(latitude, longitude)) .title(title) .icon(BitmapDescriptorFactory .fromResource(R.drawable.stop_marker))); googleMap.addCircle(new CircleOptions() .center(new LatLng(latitude, longitude)).radius(radius) .fillColor(Color.parseColor("#B2A9F6"))); } @Override public void onMarkerDrag(Marker marker) { } @Override public void onMarkerDragEnd(Marker marker) { LatLng dragPosition = marker.getPosition(); double dragLat = dragPosition.latitude; double dragLong = dragPosition.longitude; googleMap.clear(); createGeofence(dragLat, dragLong, distance, "CIRCLE", "GEOFENCE"); Toast.makeText( MainActivity.this, "onMarkerDragEnd dragLat :" + dragLat + " dragLong :" + dragLong, Toast.LENGTH_SHORT).show(); Log.i("info", "on drag end :" + dragLat + " dragLong :" + dragLong); } @Override public void onMarkerDragStart(Marker marker) { } main .xml < ?xml version="1.0" encoding="utf-8"?> < RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > < fragment android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.SupportMapFragment" /> < /RelativeLayout>
hi, cela dépend de l'exigence. Le suivi de l'emplacement de l'application peut être mis en œuvre de manière suivante en fonction de l'exigence particulière.
L'utilisation de son propre service pour le suivi de localisation permet également de suivre la localisation en arrière-plan. La précision souhaitée peut être remplie si l'intervalle de minuterie est décidé en conséquence. Approche basée sur la clôture géographique pour le suivi de localisation continue P>
Pour plus d'informations, veuillez visiter http: //mobisoftinfotech.com/3-ways-a-implément-efficients-location-Tracking-in-android-Applications/ p>
Hey, selon cet article "Lorsque la première fois que l'utilisateur est l'emplacement de l'appareil (cet emplacement pourrait être de la précision souhaitée), il créera Geofence à ce point avec le rayon pré-décidé et désactive les mises à jour de l'emplacement. Quitter un événement de cette géofence est violé Ce qui signifie que si l'utilisateur quitte la géofence, l'application détruira la même géofence et démarrera les mises à jour de l'emplacement ". Ma question est que cela n'aurait-il pas besoin de connaître l'emplacement exact de l'utilisateur à chaque instant de savoir quand l'utilisateur a quitté cette géofence?
GeoFencing vous oblige-t-il à surveiller en permanence l'emplacement de l'utilisateur? - non fort>, il ne vous oblige pas à surveiller l'emplacement. p>
Seules les exigences sont p>
ou la localisationClient à laquelle vous ajoutez-vous que la géofence déclenche automatiquement lorsqu'une transition s'est produite? - oui fort>
Ce sera [facultatif] p>
Aussi, vous pouvez attraper la geofence droite Erreurs à savoir, pourquoi votre géo-clôture n'a-t-elle pas été déclenchée: p>
Geofence_Not_Available
Le service Geofence n'est pas disponible maintenant. En règle générale, c'est parce que l'utilisateur a désactivé l'accès à l'emplacement dans Paramètres> Accès de l'emplacement. P>
valeur constante: 1000 p>
géofence_too_many_geofences
Votre application a enregistré plus de 100 Geofences. Supprimer ceux non utilisés avant d'ajouter de nouveaux géofences. P>
Valeur constante: 1001 P>
géofence_too_many_pending_intents
Vous avez fourni plus de 5 dollar dotés dans les adjonctions (Googleapiclient, GeoFencingReQuest, Pattingintent). P>
Valeur constante: 1002 P>