J'ai essayé de suivre ce tutoriel: Obtenir des données du Web
J'ai essayé de l'implémenter sur Android 3.0, la dernière plate-forme pour tablettes, cependant, j'obtiens cette erreur: " Impossible de résoudre l'hôte" www.anddev.org "Aucune adresse associée au nom d'hôte. "
Vous pouvez extraire l'URL que j'ai utilisée pour prouver que le fichier existe. http://www.anddev.org/images/tut/basic/getdatafromtheweb/loadme.txt
J'ai créé une classe privée et l'ai étendue avec asynctask. Voici le code:
private class Downloader extends AsyncTask<String,Void,String>{
String myString = null;
@Override
protected String doInBackground(String... arg0) {
try{
URL myURL = new URL("http://www.anddev.org/images/tut/basic/getdatafromtheweb/loadme.txt");
URLConnection ucon = myURL.openConnection();
InputStream is = ucon.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
ByteArrayBuffer baf = new ByteArrayBuffer(50);
int current = 0;
while((current=bis.read())!=-1){
baf.append((byte)current);
}
myString = new String (baf.toByteArray());
}catch(Exception e){
myString = e.getMessage();
}
return myString;
}
@Override
protected void onPostExecute(String result){
tv.setText(result);
}
}
Toute aide serait appréciée.
Mon pari est que vous avez oublié de donner à votre application la permission d'utiliser Internet. Essayez d’ajouter ceci à votre Android manifeste:
<uses-permission Android:name="Android.permission.INTERNET" />
<uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE" />
S'il vous plaît, vérifiez si vous avez une connexion Internet valide.
Peut vous avoir pris la permission
<uses-permission Android:name="Android.permission.INTERNET" />
<uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE" />
MAIS
Pouvez-vous accéder à cette URL à partir du navigateur intégré?
Sinon, cela signifie que votre configuration réseau n'est pas correcte. Si vous êtes dans l'émulateur, vous pouvez jeter un coup d'œil à la section résea de la documentation.
Si vous êtes sur OS/X, l'émulateur utilise "la première" interface, en0 même si vous êtes sur sans fil (en1), car en0 sans câble est toujours marqué en haut. Vous pouvez délivrer ifconfig en0 down
et redémarrez l'émulateur. Je pense avoir lu des informations sur un comportement similaire sous Windows.
Si vous utilisez le Wifi/3G, appelez votre fournisseur de réseau pour connaître les paramètres DNS corrects.
si vous avez un accès Internet USB comme moi, l'émulateur semble ne pas aimer que la connexion soit activée et désactivée. Vous devrez peut-être redémarrer l'émulateur.
Cette erreur à cause de votre hôte ne peut pas être traduite en adresses IP via DNS.
Résolution de ce problème:
1- Assurez-vous de vous connecter à Internet (vérifiez la qualité du réseau).
2- Assurez-vous de prendre les autorisations nécessaires pour accéder au réseau
<uses-permission Android:name="Android.permission.INTERNET" />
<uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE" />
J'ai eu la même erreur et pour le problème était que j'étais sur VPN et je ne m'en rendais pas compte. Après avoir déconnecté le VPN et reconnecté le wifi, il a été résolu.
Assurez-vous également que votre appareil n'est pas en mode avion et/ou que l'utilisation des données est activée.
Si vous voyez ceci par intermittence sur une connexion Wi-Fi ou LAN, mais que votre connexion Internet mobile semble correcte, il est fort probable que le routeur de passerelle bon marché de votre FAI connaît une charge de trafic élevée.
Vous devez intercepter ces erreurs et rappeler à l'utilisateur de fermer toute autre application utilisant le réseau.
Testez en lançant quelques vidéos HD youtube sur votre bureau pour les reproduire, ou allez simplement chez un Starbucks occupé.