Android Připojení HTTP

hlasů
17

Může mi někdo říct, můj, proč to nefunguje v Android emulátoru? Z prohlížeče mám přístup a server je vnitřní. Jediné, co mohu myslet, že mi chybí nějaké konfiguraci na mé aplikaci, takže je možné získat přístup k síťové vrstvy.

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);
}

Hází UnknownHostException

dík

Položena 14/01/2009 v 11:11
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
30

Co se týče konfigurace jede, jediná hodnota by vás potřebovat pro přístup k Internetu z aplikace je INTERNET povolení, povoleno přidáním následující řádek mimo tagů aplikace v rámci aplikace Manifest.

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

Takže manifest bude následovat tuto obecnou konstrukci

<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>
Odpovězeno 14/01/2009 v 11:58
zdroj uživatelem

hlasů
2

Mohlo by to ještě nebude fungovat, protože časový limit. Vzhledem k tomu budete potřebovat oprávnění uživatele root poslat balíček ICMP a implemetation z isReachable bude používat pomalé TCP verzi ECHO. Chekcout na Javadoc.

Odpovězeno 02/10/2009 v 12:23
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more