Android : Creating dataoutputstream in service inside?

on Monday, March 23, 2015


I have a service Class, in which the socket is created. I can call the service at MainActivity, but I want to use in MainActivity button inside to pass data.I created dataoutputstream in service,But I do not know how to make the data can be transmitted over Button,Do not create dataoutputstream in service, and then use a similar global variables to make butoon able to pass data?


In Service :



public class SocketService extends Service {
public static final String TAG = "MySocket";
public static Socket socket;
public static DataOutputStream out = null;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
Log.d(TAG, "onCreate() executed");
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d(TAG, "onStartCommand() executed");
new Thread(new Runnable() {
@Override
public void run() {
try {
socket = new Socket("ip",port);
Log.d(TAG,"creat socket");
out = new DataOutputStream(socket.getOutputStream());//and stream
Log.d(TAG,"dataoutput stream");
} catch (UnknownHostException e1) {
e1.printStackTrace();
Log.d(TAG,"UnknownHostException error");
} catch (IOException e1) {
e1.printStackTrace();
Log.d(TAG,"IOException error");
}
}
}).start();
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
try {
socket.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
socket = null;
super.onDestroy();
}


}


data:



Button.OnClickListener BtnPowOnClickListener = new Button.OnClickListener(){
@Override
public void onClick(View view) {
try {
byte[] buf ={(byte) 0x80,
};
out.write(buf);
out.flush();
}catch(Exception obj){
}
}
};

0 comments:

Post a Comment