09.02.2017 Views

creez-des-applications-pour-android

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

6 Exploiter les fonctionnalités d’Android<br />

}<br />

boolean wifi = networkInfo.getType() == ConnectivityManager.TYPE_WIFI ;<br />

Log.d("NetworkState", "L'interface de connexion active est du Wifi : " + wifi);<br />

[[information]] | De manière générale, on préférera utiliser internet si l’utilisateur est en WiFi<br />

parce que le réseau mobile est plus lent et est souvent payant. Il est conseillé de mettre en garde<br />

l’utilisateur avant de télécharger quelque chose en réseau mobile. Vous pouvez aussi envisager<br />

de bloquer les téléchargements quand seul le réseau mobile est disponible, comme c’est souvent<br />

fait.<br />

Il est cependant possible que l’état de la connexion change et qu’il vous faille réagir à ce changement.<br />

Dès qu’un changement surgit, le broadcast intent ConnectivityManager.CONNECTIVITY_ACTION<br />

est envoyé (sa valeur est étrangement <strong>android</strong>.net.conn.CONNECTIVITY_CHANGE). Vous<br />

<strong>pour</strong>rez donc l’écouter avec un receiver déclaré de cette manière :<br />

<br />

<br />

<br />

<br />

<br />

Vous trouverez ensuite dans les extras de l’intent plus d’informations. Par exemple ConnectivityManager.EXT<br />

renvoie un booléen qui vaut true s’il n’y a pas de connexion à internet en cours. Vous pouvez aussi<br />

obtenir directement un NetworkInfo avec l’extra ConnectivityManager.EXTRA_OTHER_NETWORK_INFO<br />

afin d’avoir plus d’informations sur le changement.<br />

6.1.2 Afficher <strong>des</strong> pages Web<br />

Il <strong>pour</strong>rait vous prendre l’envie de montrer à votre utilisateur une page Web. Ou alors il se peut que<br />

vous vouliez faire une interface graphique à l’aide de HTML. Nous avons déjà vu une méthode <strong>pour</strong><br />

mettre du HTML dans <strong>des</strong> TextView, mais ces métho<strong>des</strong> ne sont pas vali<strong>des</strong> <strong>pour</strong> <strong>des</strong> utilisations<br />

plus poussées du HTML, comme par exemple <strong>pour</strong> afficher <strong>des</strong> images ; alors <strong>pour</strong> afficher une<br />

page complète, n’imaginez même pas.<br />

Ainsi, <strong>pour</strong> avoir une utilisation plus poussée de HTML, on va utiliser une nouvelle vue qui s’appelle<br />

WebView. En plus d’être une vue très puissante, WebView est commandé par WebKit, un<br />

moteur de rendu de page Web qui fournit <strong>des</strong> métho<strong>des</strong> pratiques <strong>pour</strong> récupérer <strong>des</strong> pages sur<br />

internet, effectuer <strong>des</strong> recherches dans la page, etc.<br />

6.1.2.1 Charger directement du HTML<br />

Pour insérer <strong>des</strong> données HTML sous forme textuelle, vous pouvez utiliser void loadData(String<br />

data, String mimeType, String encoding) avec data les données HTML, mimeType le<br />

type MIME (en général text/html) et l’encodage défini dans encoding. Si vous ne savez pas<br />

quoi mettre <strong>pour</strong> encoding, mettez « UTF-8 », cela devrait aller la plupart du temps.<br />

import <strong>android</strong>.app.Activity;<br />

import <strong>android</strong>.os.Bundle;<br />

import <strong>android</strong>.webkit.WebView;<br />

392

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!