Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to Send string from Android to PC over wifi

Hello i am working on an android app which requires to send a string over wifi to PC resulting in simulating keyboard keypresses.Any ideas how i can achieve this task ?

like image 379
HashT Avatar asked Apr 30 '12 17:04

HashT


2 Answers

  1. The communication part is rather easy. Open a TCP server on the PC, and have a TCP Client on the Android device sending it Strings / Commands. A nice tutorial may be found here, but you will need to modify it for your needs.

    Notice that when working with TCP, it should not be done from the main thread, but from a background thread. A good method for that is AsyncTask (When you'll get there).

  2. The other part is the keyboard simulation. For that you need to use the java.awt.Robot class.

like image 183
MByD Avatar answered Sep 19 '22 00:09

MByD


You would have to write a server program on the PC and use a ServerSocket to accept a connection from and write a thread for your Android phone that uses a regular socket (with the same port as the PC end) and then manage them using DataInputStream and DataOutputStream. You also need to open permissions on your AndroidManifest.xml.

For the permissions use this:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

For the code here's a little example:

Server:

String msg_received;

ServerSocket socket = new ServerSocket(1755);
Socket clientSocket = socket.accept();       //This is blocking. It will wait.
DataInputStream DIS = new DataInputStream(clientSocket.getInputStream());
msg_received = DIS.readUTF();
clientSocket.close();
socket.close();

Client:

Socket socket = new Socket("192.168.0.1",1755);
DataOutputStream DOS = new DataOutputStream(socket.getOutputStream());
DOS.writeUTF("HELLO_WORLD");
socket.close();
like image 25
Moises Jimenez Avatar answered Sep 18 '22 00:09

Moises Jimenez