Skip to content

gautier-levert/android-exercise-weather-template

Repository files navigation

TP4 Application météo

Présentation

L'objectif du TP est de créer un application de météo qui va afficher :

  • La météo actuelle à votre position.
  • Les prévisions météo pour les 5 prochains jours.

Pour cela nous allons utiliser l'API ouverte et gratuite OpenWeatherMap

Un client Java pour cette API a été créé pour vous, disponible à l'adresse suivante : https://github.com/GautierLevert/android-exercise-weather-template

Pour faire appel à l'API il suffit d'instancier la classe WeatherManager et d'appeler les méthodes findWeatherBy...() ou findForecastBy...()

// récupération de la météo actuelle par nom de ville
WeatherResponse weather = weatherManager.findWeatherByCityName("Amiens");

// récupération de la météo actuelle par position géographique
WeatherResponse weather = weatherManager.findWeatherByGeographicCoordinates(49.8942, 2.2957);

// récupération des prévisions par nom de ville
ForecastResponse forecast = weatherManager.findForecastByCityName("Amiens");

// récupération des prévisions par position géographique
ForecastResponse forecast = weatherManager.findForecastByGeographicCoordinates(49.8942, 2.2957);

Attention : Ces méthodes font des appels réseau et devront donc être appelées en dehors du main thread. Se référer au TP sur les AsyncTask

Objectifs

Les objectifs sont les suivants :

  1. Recherchez la météo actuelle par nom de ville.

    • Récupérer le noms d'une ville à l'aide d'une EditText
    • Attention, le téléchargement des informations doit se faire par une AsyncTask
    • Pour commencer contentez vous de logger le résultat ou d'afficher une info simple
  2. Affichez les informations sur la météo actuelle.

  3. Créez une deuxième Activity qui permettra d'afficher les prévisions des 5 prochains jours.

  4. Affichez l'icône associée à la situation météorologique.

    • Récupérez l'URL l'icône à afficher depuis le modèle
    weather.getIconUri()
  5. Demandez la permission de l'utilisateur de récupérer sa localisation et permettre d'effectuer la recherche par position (longitude et latitude).

    • demander l'autorisation d'accéder à la position de l'utilisateur (android.permission.ACCESS_FINE_LOCATION et android.permission.ACCESS_COARSE_LOCATION)
    • récupérer une instance de LocationManager
    • récupérer la dernière position connue à l'aide de
    locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);

    ou

    locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
    • Si ces deux méthodes ne renvoient rien il faut passer par
    locationManager.requestSingleUpdate(LocationManager.NETWORK_PROVIDER, listener, null);

    ou

    locationManager.requestSingleUpdate(LocationManager.GPS_PROVIDER, listener, null);

Exemple d'affichage

Screen

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages