У меня есть приложение для Android, созданное Eclipse.
Это приложение работает как клиент, подключающийся к серверу по беспроводной сети через сокетное соединение.
У меня проблема с кодом создания сокета.
Когда я пытаюсь переместить код из одного действия в другое в моем приложении, он не работает.
Вот первое действие, где работает код:
public class MyNewAndroidActivity extends Activity {
protected Socket socket;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final Button button_connect = (Button) findViewById(R.id.button1);
final Button button_disconnect = (Button) findViewById(R.id.button2);
final Button b_forward = (Button) findViewById(R.id.b_forward);
final Button b_backward = (Button) findViewById(R.id.b_backward);
final Button b_right = (Button) findViewById(R.id.b_right);
final Button b_left = (Button) findViewById(R.id.b_left);
final Button b_stop = (Button) findViewById(R.id.b_stop);
button_connect.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
try {
// Create socket with time out
//192.168.1.76
// my code which I want to transfer it.
int port = 2005;
SocketAddress sockaddr = new InetSocketAddress("192.168.1.15", port);
socket = new Socket();
int timeoutMs = 2000;
socket.connect(sockaddr, timeoutMs);
}
catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
когда я конвертирую его в метод в другом упражнении, он не работает
public class IBMEyes extends Activity implements SensorListener{
protected static Socket socket;
final String tag = "MyProject";
String state ="off";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sm = (SensorManager) getSystemService(SENSOR_SERVICE);
setContentView(R.layout.main);
Button b_connect = (Button) findViewById(R.id.button1);
b_connect.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
SocketConnect();
}
});
// here is my code that I've transferred it.
public void SocketConnect() {
// TODO Auto-generated method stub
try {
int port = 2005;
SocketAddress sockaddr = new InetSocketAddress("192.168.1.15", port);
socket = new Socket();
int timeoutMs = 2000;
socket.connect(sockaddr, timeoutMs);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}