Vous aurez besoin de faire plusieurs choses.
Tout d'abord, pour incorporer Google Maps, votre référence complète est disponible here.
en quelques étapes simples:
1 Suivez les étapes here: cela permettra d'ajouter un simple google maps à votre écran.
2 Pour pouvoir obtenir votre propre emplacement, vous devez utiliser LocationListener et LocationManager dans android. Pour ce faire, commencez par implémentez le LocationListener dans votre activité.
public class LocationActivity extends Activity implements LocationListener
3 Ensuite, vous devez instancier quelques paramètres dans votre méthode onCreate()
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Get the location manager
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
// Define the criteria how to select the provider
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
provider = locationManager.getBestProvider(criteria, false);
Location location = locationManager.getLastKnownLocation(provider);
// Initialize the location fields
if (location != null) {
System.out.println("Provider " + provider + " has been selected.");
onLocationChanged(location);
}
}
4 Vous devez être en mesure de demander des mises à jour régulières emplacement. Incluez ceci dans votre méthode onResume().
@Override
protected void onResume() {
super.onResume();
locationManager.requestLocationUpdates(provider, 400, 1, this);
}
5 Si l'application tombe dans le cycle de pause, ces mises à jour ne devraient pas être nécessaires.
@Override
protected void onPause() {
super.onPause();
locationManager.removeUpdates(this);
}
6 Votre position mise en œuvre de l'auditeur de l'étape 2 exige que vous avez un auditeur OnLocationChanged, la mettre en oeuvre:
@Override
public void onLocationChanged(Location location) {
int lat = (int) (location.getLatitude());
int lng = (int) (location.getLongitude());
}
7 Ajouter ces deux méthodes pour être informé du fournisseur de réglage de l'emplacement - la GPS ou le réseau.
public void onProviderDisabled(String arg0) {
Toast.makeText(this, "Disabled provider " + provider,
Toast.LENGTH_SHORT).show();
}
public void onProviderEnabled(String arg0) {
Toast.makeText(this, "Enabled new provider " + provider,
Toast.LENGTH_SHORT).show();
}
8 Nous devons maintenant lier ceci à vos google maps. Je vais vous montrer un exemple d'utilisation de l'API google maps pour générer un marché afin de montrer votre position actuelle. Les autres utilisations peuvent être déduites de l'API.
d'abord créer des champs privés dans votre code:
private GoogleMap mMap;
Marker m;
9 Ajouter ces derniers dans votre méthode onCreate - ce instancie votre position de marqueur par défaut comme 0,0 latitude et longitude. 10 Dans votre méthode onLocationChanged, nous avons besoin de rafraîchir ce marqueur lorsque l'emplacement change. Dans la méthode onLocationChanged, vous devez actualiser ce marqueur. Alors ajouter:
m.setPosition(new LatLng(lat, lng));
m.setTitle("Your Position");
// Move the camera instantly to marker with a zoom
// of 15.
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lng), 15));
Ce sera un moyen simple de mettre à jour le marqueur avec votre position, et devrait être une bonne intro à votre Google Maps et l'API de localisation dans Android.
Pour détecter si le GPS est activé ou non, vous pouvez utiliser la réponse fournie par @Dror :) J'espère que ça aide!