Arkalo2 / AndroidMeteo

TP android

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

TP android


Languages

Language:Java 100.0%