У меня есть служба, которая должна ждать команды с сервера. Теперь мне нужно создать сокет с самого начала до конца службы. Я подумал сделать это в методе onCreate() и сохранить Socket в частной переменной и использовать его в BindService() после, но это не сработает. Где моя ошибка или где ошибки? Спасибо всем.Socket In Binding Служба Android
package com.example.testercomunicationandroidservlet;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.provider.ContactsContract.Contacts.Data;
import android.telephony.TelephonyManager;
import android.util.Log;
public class BindService extends Service {
public BindService() {
// TODO Auto-generated constructor stub
}
@Override
public IBinder onBind(Intent arg0)
{
// TODO Auto-generated method stub
return null;
}
public void onCreate()
{
try {
Log.i("BindService", "Service Started");
this.socket = new Socket("10.0.2.2", 1500);
this.input = new DataInputStream(this.socket.getInputStream());
this.output = new DataOutputStream(this.socket.getOutputStream());
Log.i("Test Server/Android Communication", "Socket: " + this.socket.getInetAddress().toString());
TelephonyManager tm= (TelephonyManager) getSystemService(this.TELEPHONY_SERVICE);
this.output.writeUTF(tm.getDeviceId());
Log.i("Inviato IMEI: ", tm.getDeviceId());
}
catch (UnknownHostException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private Socket socket;
private DataInputStream input;
private DataOutputStream output;
}
LogCat
11-18 15:21:22.633: E/TCP(295): C: Error
11-18 15:21:22.633: E/TCP(295): java.net.SocketException: The operation timed out
11-18 15:21:22.633: E/TCP(295): at org.apache.harmony.luni.platform.OSNetworkSystem.connectStreamWithTimeoutSocketImpl(Native Method)
11-18 15:21:22.633: E/TCP(295): at org.apache.harmony.luni.platform.OSNetworkSystem.connect(OSNetworkSystem.java:115)
11-18 15:21:22.633: E/TCP(295): at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:244)
11-18 15:21:22.633: E/TCP(295): at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:219)
11-18 15:21:22.633: E/TCP(295): at java.net.Socket.startupSocket(Socket.java:781)
11-18 15:21:22.633: E/TCP(295): at java.net.Socket.<init>(Socket.java:316)
11-18 15:21:22.633: E/TCP(295): at com.example.betacomunicate_clientandroid.TCPClient.run(TCPClient.java:53)
11-18 15:21:22.633: E/TCP(295): at com.example.betacomunicate_clientandroid.MyActivity$connectTask.doInBackground(MyActivity.java:89)
11-18 15:21:22.633: E/TCP(295): at com.example.betacomunicate_clientandroid.MyActivity$connectTask.doInBackground(MyActivity.java:1)
11-18 15:21:22.633: E/TCP(295): at android.os.AsyncTask$2.call(AsyncTask.java:185)
11-18 15:21:22.633: E/TCP(295): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
11-18 15:21:22.633: E/TCP(295): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
11-18 15:21:22.633: E/TCP(295): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
11-18 15:21:22.633: E/TCP(295): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
11-18 15:21:22.633: E/TCP(295): at java.lang.Thread.run(Thread.java:1096)