Sono andato a ripescare un test che avevo fatto tempo addietro ed è praticamente uguale (perdonami ma ho fatto un solo test un'anno e mezzo fa usando i socket sotto android, sono arrugginito )
codice:
public void tcpSend(String what) {
Socket s = null;
try {
// s = new Socket("192.168.0.144",6789);
int port = Integer.valueOf(textPort.getText().toString());
s = new Socket(textip.getText().toString(),port);
//outgoing stream redirect to socket
OutputStream out = s.getOutputStream();
OutputStreamWriter ow = new OutputStreamWriter(out);
PrintWriter output = new PrintWriter(ow);
output.println(what);
output.close();
ow.close();
out.close();
} catch (Exception e) {
} finally {
if (s != null) {
try {
s.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
Questo funzionava x certo (quantomeno sul 2.2) e comunicava con una app java che usava i socket sul pc.
i miei permessi erano :
codice:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
A questo punto io farei mille piccole verifiche che probabilmente però hai già fatto :
Non è che per caso hai dati chiusi e wifi staccato sul telefono ?
L'indirizzo ip è corretto ? la porta è corretta ? risponde qualcosa ?
Peraltro, in debug ti si ferma sul Log.d(...) ? Se si, prova a fare un inspect di e e vedi almeno che tipo di eccezione è.
Continuo però a non capire come mai non ti scriva nulla sui log se va in errore.