Salve a tutti,
in poche parole sto provando a fare un mini programmino che comunica tramite socket. Sul mio pc fisso ho già un server scritto in java che comunicava tramite socket e stavo provando in pratica a sviluppare un client da far girare sul mio tablet android 3.0 che comunichi con il server che ho sul pc.
Ho provato a scrivere poche righe di codice sfruttando le librerie standard del java:
Ma mi sollevava l'eccezione Access Denied, quindi documentandomi su internet ho visto che bisognava abilitare i permessi nel file Manifest, nella fattispecie i permessi per internet, ho quindi modificato il mio file manifest in questa maniera:codice:package com.neptune.prova3; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; import com.neptune.prova3.R; import android.app.Activity; import android.os.Bundle; import android.widget.Button; import android.widget.TextView; public class Android3Activity extends Activity { /** Called when the activity is first created. */ private ObjectOutputStream out; private ObjectInputStream in; private InetAddress addr; Socket socket; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //Connessione al server try { // indirizzo riservato al localhost 127.0.0.1 addr = InetAddress.getByName("192.168.1.101"); } catch (UnknownHostException e1) { e1.printStackTrace(); ((TextView) this.findViewById(R.id.textView1)).setText(e1.getMessage()); } try { socket = new Socket(addr, 8085); //out = new ObjectOutputStream(socket.getOutputStream()); //in = new ObjectInputStream(socket.getInputStream()); ((TextView) this.findViewById(R.id.textView1)).setText("CREATO IL SOCKET"); } catch (IOException e1) { e1.printStackTrace(); socket = null; ((TextView) this.findViewById(R.id.textView1)).setText(e1.getMessage()); } } }
nella fattispecie ho aggiunto la seguente riga:codice:<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.neptune.prova3" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="11" /> <uses-permission android:name="android.permission.INTERNET" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Android3Activity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
aggiungendo questa riga però il programma appena avviato crasha.codice:<uses-permission android:name="android.permission.INTERNET" />
Non riesco proprio a capire da cosa dipenda, contando tra l'altro la semplicità del programma. Avete qualche idea a riguardo?
Vi ringrazio in anticipo,
Neptune.

LinkBack URL
About LinkBacks
Rispondi quotando