2009-01-14 17 views
17

Quelqu'un peut-il me dire pourquoi cela ne fonctionne pas dans l'émulateur Android? Depuis le navigateur j'ai accès et le serveur est interne. Tout ce que je peux penser, c'est qu'il me manque une configuration sur mon application afin qu'elle puisse accéder à la couche réseau.Connexion HTTP Android

try { 
    InetAddress server = Inet4Address.getByName("thehost"); 
    //Doesn't work either 
    //or InetAddress server2 = Inet4Address.getByAddress(new String("192.168.1.30").getBytes()); 

    if(server.isReachable(5000)){ 
     Log.d(TAG, "Ping!"); 
    } 

    Socket clientsocket = new Socket(server, 8080); 
} catch (UnknownHostException e) { 
    Log.e(TAG, "Server Not Found"); 
} catch (IOException e) { 
    Log.e(TAG, "Couldn't open socket"); 
} 

lance une UnknownHostException

Merci

Répondre

30

En ce qui concerne la configuration va, le seul paramètre que vous avez besoin d'accéder à Internet à partir de votre application est l'autorisation INTERNET, activée par adjonction ligne outside les balises Application dans votre manifeste d'application.

<uses-permission android:name="android.permission.INTERNET" /> 

Ainsi, le manifeste suivrait cette construction générale

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.apis">  
    <uses-permission android:name="android.permission.INTERNET" /> 
    <application 
    android:name="MyApplication"  
    android:label="@string/application_title" 
    android:icon="@drawable/my_icon"> 
    [ .. Your Activities go here ] 
    </application> 
</manifest> 
+1

C'était tout. Merci beaucoup. – Eldelshell

+0

Excellent! J'adore quand c'est les solutions faciles. –

+0

Wow! Cette chose a atteint 3k vues ... cela devrait vous donner beaucoup de points SO Reto – Eldelshell

2

Il peut toujours pas, en raison du délai d'attente. Puisque vous avez besoin d'autorisations root pour envoyer un paquet ICMP et que l'implémentation de isReachable utilisera la version TCP lente d'ECHO. Chekcout le javaDoc.