Hola estoy trabajando en una aplicación de Android que requiere enviar una cadena a través de wifi a PC, lo que resulta en la simulación de teclados del teclado. ¿Alguna idea de cómo puedo lograr esta tarea?cómo enviar cadenas de Android a PC a través de wifi
Respuesta
Usted tendría que escribir un programa de servidor en el PC y utilizar un ServerSocket para aceptar una conexión desde y escribir un hilo para su teléfono Android que utiliza un enchufe normal (con el mismo puerto que el extremo del PC) y luego administrarlos usando DataInputStream y DataOutputStream. También necesita abrir permisos en su AndroidManifest.xml.
Para los permisos de uso de este:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
Para el código aquí hay un pequeño ejemplo:
Servidor:
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();
Cliente:
Socket socket = new Socket("192.168.0.1",1755);
DataOutputStream DOS = new DataOutputStream(socket.getOutputStream());
DOS.writeUTF("HELLO_WORLD");
socket.close();
ok He hecho la conexión del socket del servidor cliente y el servidor me notifica si la conexión está establecida, pero ¿cómo puedo hacer que el cliente me notifique de la conexión? –
Puede usar socket.isConnected() –
No puedo ofrecerle el código completo, pero al menos puedo guiarlo en la dirección correcta. Para lograr esto, debe usar Sockets. Ahora, si busca en Internet, encontrará muchos artículos y ejemplos relacionados con este tema que especifican Android. Por ejemplo, this y this.
ok he hecho la conexión del socket del servidor cliente y el servidor me notifica si la conexión está establecida pero ¿cómo puedo hacer que el cliente me notifique de la conexión? –
Es probable que tenga que escribir algún tipo de programa para la PC que actúa como un "servidor" para que la aplicación de Android envíe a través de un Socket o Stream.
ok He hecho la conexión de socket del servidor cliente y el servidor me notifica si la conexión está establecida, pero ¿cómo puedo hacer que el cliente me notifique de la conexión? –
La parte de comunicación es bastante fácil. Abra un servidor TCP en la PC y tenga un Cliente TCP en el dispositivo Android enviándolo Cadenas/Comandos. Puede encontrar un buen tutorial en here, pero deberá modificarlo para sus necesidades.
Observe que cuando se trabaja con TCP, no se debe hacer desde el hilo principal, sino desde un hilo de fondo. Un buen método para eso es AsyncTask (cuando llegue allí).
La otra parte es la simulación del teclado. Para eso necesitas usar la clase java.awt.Robot.
Gracias, pero también necesito la secuencia que se recibirá en la PC. ¿Mi PC funcionará como servidor? ¿Cómo se comunicaría la aplicación Android y la aplicación para PC? –
Para eso son exactamente los sockets TCP. para que ambos dispositivos se comuniquen. – MByD
ok He hecho la conexión del socket del servidor cliente y el servidor me notifica si la conexión está establecida, pero ¿cómo puedo hacer que el cliente me notifique de la conexión? –
en función de su web erver design o bien utiliza una comunicación tranquila o jabón y luego enviar sus datos a través de protocolo HTTP a su servicio web y obtener la respuesta deseada de la misma. He escrito un servicio web asp para el enfoque soap que explicaré a continuación.
Aquí está el ejemplo de código java para el estándar de jabón:
private static String NameSpace = "http://tempuri.org/";
//below url must be your service url, mine is a local one
private static String URL = "http://192.168.2.213/hintsservice/service.asmx";
private static String SOAP_ACTION = "http://tempuri.org/";
public static String Invoke(String s) {
//respond string from server
String resTxt = "";
//the name of your web service method
final String webMethName = "Hint";
// Create request
SoapObject request = new SoapObject(NameSpace, webMethName);
// Property which holds input parameters
PropertyInfo PI = new PropertyInfo();
// Set Name
PI.setName("s");
// Set Value
PI.setValue(s);
// Set dataType
PI.setType(String.class);
// Add the property to request object
request.addProperty(PI);
// Create envelope
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
//Set envelope as dotNet
envelope.dotNet = true;
// Set output SOAP object
envelope.setOutputSoapObject(request);
// Create HTTP call object
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try {
// Invoke web servi.ce
androidHttpTransport.call(SOAP_ACTION + webMethName, envelope);
// Get the response
SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
// Assign it to resTxt variable static variable
resTxt = response.toString();
}catch (Exception e) {
//Print error
e.printStackTrace();
//Assign error message to resTxt
resTxt = "Error occured";
}
//Return resTxt to calling object
return resTxt;
}
Ahora sólo tiene que llamar a este método de actividad adecuada y dejar que su servicio web haga el resto. Aquí está el ejemplo de servicio web en lenguaje C#:
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
[System.Web.Script.Services.ScriptService]
public class Service : System.Web.Services.WebService
{
public Service() {
//Uncomment the following line if using designed components
//InitializeComponent();
[WebMethod]
public string Hint(string s) {
string response = string.Empty;
//todo: produce response
return response;
}
}
}
- 1. enviar datos de android a PC a través de USB
- 2. Conexión WiFi a través de Android
- 3. iPhone SDK enviar cadena a través de wifi
- 4. Enviar cadena de teléfono Android a la PC
- 5. Transmisión de voz entre teléfonos Android a través de WiFi
- 6. Cómo conectar Android a PC
- 7. Habilitar/deshabilitar wifi a través de bash scripting en Android
- 8. Protocolo Bluetooth a través de wifi?
- 9. Android ESC/POS Impresión a través de WiFi
- 10. Conectividad WIFI a WIFI con Android
- 11. Android enviar archivo/datos de la aplicación a través de Bluetooth a la PC/impresora/escáner/otro dispositivo
- 12. Enviar datos desde android bluetooth a la PC con bluecove
- 13. ¿Cómo enviar valores Hex a través de Bluetooth en Android
- 14. ¿Es posible compartir mi conexión a Internet de la PC a Android a través del usb?
- 15. PC a PC Comunicación USB
- 16. AudioTrack: Reproducción de sonido entrando a través de WiFi
- 17. Enviar SMS a través de PhoneGap en Android
- 18. enviar mensajes MIDI a través de USB en Android
- 19. Compartir imagen desde un dispositivo Android a otro a través de WiFi
- 20. ¿Cómo enviar datos a través de PendingIntent a Broadcast?
- 21. Depuración de Android a través de Bluetooth
- 22. ¿Enviar datos de teléfono a teléfono a través de internet?
- 23. enviar SMS a través de SMPP
- 24. Comunicación entre Android y PC
- 25. Depuración de dispositivos Android a través de Internet
- 26. Enviar datos JSON a través de JQuery ajax.post a PHP
- 27. Transferir la configuración de Python a través de diferentes PC
- 28. ¿Cómo conectar una impresora de red a través de Android?
- 29. C# enviar imagen a través de HTTP
- 30. Transmisión de audio y video de Android a PC/web.
Usted puede utilizar este enlace [enter Descripción enlace aquí] (http://stackoverflow.com/questions/10388250/how-to-send-string- from-android-to-pc-over-wifi? noredirect = 1 & lq = 1) –
Disculpe, puede utilizar este enlace: [introducir la descripción del enlace aquí] (http://stackoverflow.com/questions/31611593/send-text- from-android-to-pc-via-wi-fi-connection?noredirect = 1 & lq = 1) –