jueves, 29 de noviembre de 2012

Android: Enviar datos des de Android al Servidor y capturar respuesta

Buenas tardes.

En este tutorial de hoy vamos aprender cómo enviar datos captados des de nuestro Android a un servidor web, en este caso a un archivo PHP. Yo os presento el código más simple para que veáis el funcionamiento y después vosotros por vuestra cuenta ampliar ese código para crear cosas útiles.

Para empezar os muestro el código del archivo 'index.php' que estará alojado en mi servidor y es el que recibirá la información enviada por Android y emitirá una respuesta.  En este caso más simple no podría ser; recibirá el parámetro y dará una respuesta de OK añadiendo el parámetro recibido para confirmar que el envío de datos a sido correcto.



index.php
<?php
 //Recibimos el parametro des de Android
 $parametro = $_REQUEST['a'];

 //En este caso simplemente imprimimos una respuesta
 //Aqui podríais introducir/obetener datos de SQL
 //O cualquier otra cosa 

 //imprimimos el mensaje de que ha llegado correctamente
 //añadiendo el parametro 'a' también
 echo ("SERVER: ok, parametro recibido -> ".$parametro);
?>
Una vez visto el php ya no le damos más importáncia. Pasemos a Android. En el siguiente código que he hecho crearemos un simple EditTexT y un botón para enviar el texto escrito en el EditText al servidor e imprimir por pantalla (en un Toast) el resultado.

El código esta como siempre totalmente comentado para el fácil entendimiento y me gustaría que practicarais con el para crear cosas útiles. Para poder entender bien el tutorial os recomiendo leer primero estos POST si es que no lo habéis hecho:

Os dejo con el código y como siempre espero vuestras dudas, sugeréncias e críticas. Gracias!

Activity
public class MainActivity extends Activity {
private Button bt;
private EditText edit;
//Creamos el handler puente para mostrar
//el mensaje recibido del servidor
private Handler puente = new Handler() {
 @Override
 public void handleMessage(Message msg) {
 //Mostramos el mensage recibido del servido en pantalla
 Toast.makeText(getApplicationContext(), (String)msg.obj, 
   Toast.LENGTH_LONG).show();
 }
};
 
@Override
protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 //Relacionamos con XML como ya sabemos
 bt = (Button)findViewById(R.id.button1);
 edit = (EditText)findViewById(R.id.editText1);
 //Añadimos el Listener
 bt.setOnClickListener(new OnClickListener() {
     @Override
            public void onClick(View v) {
     //Hay que hacerlo dentro del Thread
     //No me dejaba tocar la Clase de Network 
     //directamente en el hilo principal
     Thread thr = new Thread(new Runnable() {
  @Override
  public void run() {
  //Enviamos el texto escrito a la funcion
  EnviarDatos(edit.getText().toString());
  }
  });
 //Arrancamos el Hilo
 thr.start();
 }
 });
}
 
private void EnviarDatos(String dato){
    //Utilizamos la clase Httpclient para conectar
    HttpClient httpclient = new DefaultHttpClient();   
    //Utilizamos la HttpPost para enviar lso datos
    //A la url donde se encuentre nuestro archivo receptor
    HttpPost httppost = new HttpPost("http://tywors.com/" +
 "webs/tutoriales_html5/enviar_php/index.php");      
    try {         
    //Añadimos los datos a enviar en este caso solo uno
    //que le llamamos de nombre 'a'
    //La segunda linea podría repetirse tantas veces como queramos
    //siempre cambiando el nombre ('a')
    List<NameValuePair> postValues = new ArrayList<NameValuePair>(2);         
    postValues.add(new BasicNameValuePair("a", dato));                 
    //Encapsulamos
    httppost.setEntity(new UrlEncodedFormEntity(postValues));          
    //Lanzamos la petición
    HttpResponse respuesta = httpclient.execute(httppost);
    //Conectamos para recibir datos de respuesta
    HttpEntity entity = respuesta.getEntity();
    //Creamos el InputStream como su propio nombre indica
    InputStream is = entity.getContent();
    //Limpiamos el codigo obtenido atraves de la funcion
    //StreamToString explicada más abajo
    String resultado= StreamToString(is);
   
    //Enviamos el resultado LIMPIO al Handler para mostrarlo
    Message sms = new Message();
    sms.obj = resultado;
    puente.sendMessage(sms);
}catch (IOException e) {         
    //TODO Auto-generated catch block     
 } 
}
 
//Funcion para 'limpiar' el codigo recibido
public String StreamToString(InputStream is) {
    //Creamos el Buffer
    BufferedReader reader = 
        new BufferedReader(new InputStreamReader(is));
   StringBuilder sb = new StringBuilder();
 String line = null;
 try {
 //Bucle para leer todas las líneas
 //En este ejemplo al ser solo 1 la respuesta
 //Pues no haría falta
 while ((line = reader.readLine()) != null) {
      sb.append(line + "\n");
 }
 } catch (IOException e) {
     e.printStackTrace();
 } finally {
    try {
    is.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
 }
 //retornamos el codigo límpio
return sb.toString();
}
}

Muchas gracias y no olvides comentar!

69 comentarios:

  1. Tengo una duda, una vez copiado el codigo y hecho mi boton y mi edittext en el main.xml lo ejecuto, escribo un texto pero no hace nada..... se supone q el servidor esta recibiendo algo? o yo deberia recibir un "OK" ?

    ResponderEliminar
    Respuestas
    1. Si el código PHP es igual al del tutorial sí que deberías obtener respuesta ya que tiene un "echo".

      Eliminar
  2. como sería el codigo, para un servidor http?

    ResponderEliminar
    Respuestas
    1. Buenos días,
      no te acabo de entender, ya que el ejemplo esta hecho para un servidor http.
      El código en el servidor sería la primera parte del tutorial donde dice index.php

      explícate un poco mejor, muchas gracias!

      Eliminar
    2. perdon perdon, la pregunta era como seria la cabecera html??

      Eliminar
  3. Nose si sigo sin entenderte muy bien;

    para imprimmir alho en HTML sería simplemnete texto plano:

    < html>
    < body>
    SERVER: ok, no hay parametros en HTML
    < /body>
    < /html>

    ResponderEliminar
  4. Amigo ya lo probe y no pasa nada como se supone que deberia de funcionar

    ResponderEliminar
  5. Para enviar varios datos, por ejemplo datos y un archivo, como sería? porque por lo que veo solo pilla el último setEntity.

    ResponderEliminar
    Respuestas
    1. Para enviar varios datos hay que repetir la línea:
      postValues.add(new BasicNameValuePair("a", dato));

      una por cada dato cambiando el Key en este caso 'a' y el dato como ya se entiende.
      Para enviar archivos crearé un tutorial en cuanto tenga un rato libre. Gracias!

      Eliminar
  6. ¿es posible enviar una foto tomada desde el mismo dispositivo (celular con androide) a una url con este mismo procedimiento?
    Muchas gracias por tu colaboración.

    ResponderEliminar
  7. Muxas gracias amigo, he probado varios tutoriales, pero no me funcionaban al 100, buen aporte

    ResponderEliminar
  8. Hola, buen día
    primero que todo muchas gracias me ha servido mucho sin embargo tengo una duda.
    Cuando uso tu link para el ejemplo me sirve de maravilla, no obstante cuando trato de poner mi dirección http://localhost/xampp/example/index.php no funciona, supongo que es porque no hago conexión a mi servidor primero, eso lo cambio y en index.php hago la conexión, sin embargo no funciona =( algún consejo u observación?
    De antemano muchas gracias

    ResponderEliminar
    Respuestas
    1. Supongo que desde el navegador si puedes entrar a http://localhost/xampp/example/index.php? Haces la prueba con mi código del php en el tuyo?

      Lo que te pasa es raro... debe ser una tontería si das más detalles veremos a ver si entre todos te lo resolvemos! :D Gracias!

      Eliminar
    2. Primero que todo muchas gracias por responder.

      Me sale esto cuando intento ingresar:
      Notice: Undefined index: a in C:\xampp\htdocs\xampp\example\index.php on line 6
      SERVER: ok, parametro recibido ->

      y me está pasando algo muy raro, porque si se supone que tengo a index en una carpeta, cuando le doy http://localhost/xampp/example no me sale el listado de documentos que tengo =/ Pero si le cambio el nombre de index a receiver. La verdad no se que modificarle. Mi servidor tiene contraseña y por eso le estaba agregando dos documentos más
      "globals.php"
      class config{
      public static function getBBDDServer() {
      return 'localhost';
      }

      public static function getBBDDName(){
      return 'android';
      }

      public static function getBBDDUser(){
      return 'root';
      }

      public static function getBBDDPwd(){
      return 'diana';
      }
      }

      y dbmanager.php
      include_once('globals.php');

      class dbmanager{

      public function executeQuery($sql){
      $con = mysql_connect(config::getBBDDServer(), config::getBBDDUser(), config::getBBDDPwd());
      if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }

      mysql_select_db(config::getBBDDName(), $con);

      $result = mysql_query($sql);

      mysql_close($con);
      return $result;
      }
      }

      finalmente a index le estaba adicionando:

      include_once('globals.php');
      include_once('dbmanager.php');
      y el código de eclipse es tal cual tu lo tienes menos la línea:
      HttpPost httppost = new HttpPost("http://localhost/xampp/example/receive.php");

      Muchas gracias

      Eliminar
    3. Por lo que parece el error esta en algo de la configuración del XAMPP... Intenta hacer la prueba con APPServ es muy sencillo y apenas tiene nada de configuración. Antes de eso (Puede parecer una tontería pero en esto nunca se sabe) elimina la línea de: mysql_close($con); en el php y haz la prueba.

      Yo es que en local no tengo mucha practica ya que no lo suelo utilizar,mira a ver de probar una de esas dos cosas y sino a ver si alguien más nos puede echar un cable ;). Gracias!

      Eliminar
    4. Tengo una pregunta, tu no le tienes ningún otro archivo en el servidor?

      Eliminar
    5. No uses localhost, so no la ip de tu red, ya que el empulador del dispositivo movil es como si fuera un dispositivo externo.

      Eliminar
  9. Muchas gracias por las recomendaciones, ya mismo lo miro sino mañana pruebo en el pc de la U que tiene otro servidor ;)

    ResponderEliminar
  10. hola hermanaso tu tuto esta genial te tengo una pregunta puesto q soy novato en cosas de java yo quiero hacer lo siguiente se generaran numeros aleatorios y quiero q cada vez q el numero sea superior a 120 este inserte una serie de datos sin necesidad de ejecutar un boton o algo no se si me explico quiero hacer inserciones a la base de datos sin necesidad de usar un boton para ejecutar la accion si no cuando se genere un numero superior a 120 no se si tengas algun ejemplo de esto realmente me interesa mi nombre es jose dejo mi correo jose_xp_799@hotmail.com

    ResponderEliminar
    Respuestas
    1. Puedes probar haciendo un TimerTask o sino lo poner en el onCreate, no ara necesidad de apretar ningún botón, esto que me preguntas no será con fines maléficos no? xD

      Eliminar
  11. NO PARA NADA xD es para un proyecto de la escuela

    ResponderEliminar
  12. mira este es el codigo q tengo pero no se q error cometo q no inserta los datos
    public void onClick(View v) {
    //Declare the timer
    Timer t = new Timer();
    //Set the schedule function and rate
    t.scheduleAtFixedRate(new TimerTask() {

    @Override
    public void run() {
    runOnUiThread(new Runnable() {
    @Override
    public void run() {
    TextView tv = (TextView) findViewById(R.id.tv2);

    final Random myRandom = new Random();
    switch (contador){
    case 1: tv.setText(String.valueOf(myRandom.nextInt(95-90)+90));
    numero=myRandom.nextInt();
    if(numero>=90 ) {
    class Insertar extends AsyncTask {

    protected String doInBackground(String… args) {
    String nombre= (“Jose”);
    String Npulso=”";
    numero= Integer.parseInt(Nnumero);;

    // Building Parameters
    List params = new ArrayList();
    params.add(new BasicNameValuePair(“nombre”, nombre));
    params.add(new BasicNameValuePair(“Nnumero”, Nnumero));

    // getting JSON Object
    // Note that create product url accepts POST method
    JSONObject json = jsonParser.makeHttpRequest(url_create_paciente,
    “POST”, params);

    // check log cat fro response
    Log.d(“Creacion Exitosa”, json.toString());

    // check for success tag
    try {
    int success = json.getInt(TAG_SUCCESS);

    if (success == 1) {
    // successfully created product
    Intent i = new Intent(getApplicationContext(), monitor.class);
    startActivity(i);

    // closing this screen
    finish();
    } else {
    // failed to create product
    }
    } catch (JSONException e) {
    e.printStackTrace();
    }

    return null;
    }

    }

    }
    break;

    }

    contador+=1;
    }

    });
    }

    }, 60000, 60000);

    }
    });
    }
    no se que error me sale a parte no se donde colocar esto new Insertar().execute(); q lo coloco en el onclick del boton que preciono para que este empiese a generar los numeros aleatorios y quiero q cuando este sea superior a 120 inserte datos disculpa la novatada lo de la insercion estoy tratando de hacerlo con un if pero igual no hace nada

    ResponderEliminar
  13. no se si me puedas dar una mano es q de verdad lo necesito para terminar mi proyecto y estoy ya a una semana tratando y no se que hacer :(

    ResponderEliminar
  14. <?php


    // array for JSON response
    $response = array();

    // check for required fields
    if (isset($_POST['nombre']) && isset($_POST['codigo'])) {

    $nombre = $_POST['nombre'];
    $codigo = $_POST['codigo'];



    // include db connect class
    require_once __DIR__ . '/db_connect.php';

    // connecting to db
    $db = new DB_CONNECT();

    // mysql inserting a new row
    $result = mysql_query("INSERT INTO registro(nombre, codigo, fecha, hora) VALUES('$nombre', '$codigo','2013-06-18', '19:41:00')");

    // check if row inserted or not
    if ($result) {
    // successfully inserted into database
    $response["success"] = 1;
    $response["message"] = "registro Guardado.";

    // echoing JSON response
    echo json_encode($response);
    } else {
    // failed to insert row
    $response["success"] = 0;
    $response["message"] = "Oops! Un ERROR";

    // echoing JSON response
    echo json_encode($response);
    }
    } else {
    // required field is missing
    $response["success"] = 0;
    $response["message"] = "Required field(s) is missing";

    // echoing JSON response
    echo json_encode($response);
    }

    ResponderEliminar
    Respuestas
    1. Primero comprueba que el PHP te funcione bien, cambia los parámetros $_POST por $_GET (solo durante esta prueba) y pasale los parámetros manualmente, ejemplo: loksea.php?nombre=pepe&codigo=200 y mira aver si graba en SQL.

      Para el Android tendras que ir comprobanda hasta que punto te funciona y cual no, utiliza el Log.d("Miapp","punto 1,2,3,etc.."); y podrás leer en el Logcat si te llega hasta esa linea sin fallos. Ves intercalando tus lineas del programa con el Log.d("Miapp","punto 1,2,3,etc.."); veras en que punto te deja de funcionar. Me gustaría ayudarte más pero entre el trabajo y todo no me lo puedo permitir, lo siento. Si te salen dudas puntuales pregunta aquí. Muchas Gracias!

      Eliminar
  15. Hola Tengo una pregunta. Supongamos que quiero enviar información desde una pagina accedida por un dispositivo movil con android cuando presiono un boton en la pagina. Tengo que que dar algun tipo de permiso para que dicho contenido sea enviado supongo, o para que el dispositivo acceda a recibirlo? Ahora bien hay alguna forma de obtenerlo mediante alguna API? tenes alguna idea de como hacerlo?

    ResponderEliminar
    Respuestas
    1. Te refieres a que quieres mostrar una web dentro de la aplicación y que esta envíe algún tipo de información del dispositivo, no? Creo que tienes más de una opción.

      -La más difícil: Que la pagina por si sola coja información del dispositivo, aquí ya tienes que ponerte con más lenguajes y mirar como se podría hacer con php o asp o algo así... muchos permisos etc..

      -La manera fácil: nose si te valdría, sería coger la información des de java, es decir desde la misma aplicación y pasarla a la web una vez que pulse el botón de enviar a través de variables en el GET por ejemplo..

      Dime algún ejemplo más concreto que con lo que lo quieras utilizar. Gracias! +1 :D

      Eliminar
    2. Hola, primero que nada muchas gracias por responder. La idea seria que en una pagina se pueda tener información de algun usuario (como su mail), y presionando un boton(tratando de no instalar un cliente en el dispositivo, si se puede),se cree en el celular o tablet un archivo con dicha información o un contacto. Espero que te quedara un poco mas clara mi duda. No soy un experto, recien comienzo y me surgen muchos interrogantes. Si tenes alguna otra reflexión me sera de gran utilidad.
      De nuevo muchas gracias.

      Disculpame por no responder en el hilo correspondiente mas abajo no me di cuenta.

      Eliminar
    3. Por lo que he entendido tendrías que utilizar la opción difícil xD ya que quieres conectar una pagina web con un dispositivo móvil.

      Para guardar archivos se aria con en web normal de PC sin embargo que ese archivo actúe de una manera o otra (por ejemplo que sea un contacto) abrá que buscar más... cuando tenga tiempo buscaré sobre ese tema. Perdona por no poderte ayudar más de momento!

      Eliminar
  16. Falta un detalle, en Manifest tienen que darle permisos de INTERNET de lo contrario no funcionara APP.

    ResponderEliminar
  17. Hola! esta muy bueno el tuto pero quede con algunas dudas..
    Estoy haciendo un proyecto en el cual necesito obtener informacion de una base de datos que esta alojada en un servidor. La duda que me queda es como hago la conexion con la base de datos.. esto lo hago en un PHP? o lo debo hacer en alguna clase de la app ??
    Y si necesito hacer pruebas en localhost, como hago la conexion? gracias!

    ResponderEliminar
  18. Estimado Victor:
    te felicito por tus aportes,mi caso es, yo me comunico bien con la base de datos hago bien el sql, mi pregunta como hago para que los datos leidos de una tabla los pueda enviar al dispositivo y aparezcan en la pantalla del dispositivo.gracias.

    ResponderEliminar
    Respuestas
    1. Si realizas este tutorial al dispositivo te llegará el mensaje de : SERVER: ok, parametro recibido -> ....
      Simplemente hay que añadir una consulta a base de datos Select Id from table ....
      y el resultado de la consulta lo debes añadir en vez de ( SERVER: ok, parametro recibido ->) ....
      Ya comentarás resultados! un +1 nos ayuda a todos!
      Muchas gracias!

      Eliminar
  19. MUCHAS GRACIAS, ME SIRVIO BASTANTE :D

    ResponderEliminar
  20. Amigo podria adjuntar el proyecto , para poder descargarlo
    soy nuevo en android y me seria de mucha ayuda.
    atento a sus comentarios.
    Nelson

    ResponderEliminar
  21. hola! oye un favor, tengo que hacer una aplicacion en donde con un solo boton en android, mande a traer la tabla sqlite con una respuesta de esa tabla de manera aleatoria.. tu sabrias como hacerlo!!!

    ResponderEliminar
  22. Enhorabuena Victor un gran trabajo. Gracias

    ResponderEliminar
  23. Que tal victor, mi duda es que corro el la App desde mi cell y miro el php en un servidor, pero no muestra sino "SERVER: ok, parametro recibido -> " faltando la variable que envie desde la aplicación, agradecería ayuda lo antes posible, de hecho sería genia hoy mismo
    Mil gracias

    ResponderEliminar
  24. hola buenas noches disculpa soy nueva en esto de la programacion en android, lo que pasa es que un profesor nos dejo que desarrollemos un programa en android que capture el numero de celular de donde nos envian un mensaje y que lo mostremos en una base de datos me gustaria optener su ayuda, me parecio interesante su post y queria saber como podria hacer si es que es posible adecuar su codigo para lo que se me solicito, de antemano muchisimas gracias por el apoyo

    ResponderEliminar
    Respuestas
    1. Este tutorial te puede servir para la parte de enviar el número que recoges y guardarlo en una base de datos en el servidor. Para la parte de capturar el número de teléfono busca en google 'intent receiver android' y busca algún ejemplo de sms que seguro que hay!

      Muchas gracias por seguir nuestra web!

      Eliminar
  25. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  26. Muy buen tutorial, funciona excelente mi duda es como puedo mostrar el parametro recibido pero en php es decir que el echo ("SERVER: ok, parametro recibido -> ".$parametro); se visualice en mi navegador y no en mi dispositivo android. De antemano muchas gracias por el tutorial y por cualquier ayuda

    ResponderEliminar
    Respuestas
    1. En el navegador del móvil?
      Con este tutorial no es posible ya que es un envio-respuesta, tendrías que buscar de hacer un intent a la página web. Hace tiempo publique un tutorial sobre intents, échale un ojo :)

      Eliminar
  27. Necesito que los datos se visualicen en una aplicación web que será accesada desde una pc de escritorio, revisare tu articulo de intents gracias.

    ResponderEliminar
  28. Como puedo hacerle para mostrar en una pagina web los parámetros enviados? Quiero enviar mi ubicación gps al server y que me la muestre en un mapa en una página web, de antemano gracias.

    ResponderEliminar
    Respuestas
    1. Al enviarlos al server deberás guardar las coordenadas en una SQL. Y despues pues consultas la SQL des de la web.

      Eliminar
    2. Hola, estoy interesada en tu problema, ya que tengo que realizar un control de flotas para unos vehículos y no se como hacer el server.. la verdad ando un poco perdida

      Eliminar
  29. amigo una ayuda por favor, necesito enviar un archivito al servidor como hago eso?

    ResponderEliminar
  30. Hola felicidades por el tuto me uno a la pregunta de dante como podria enviar una archivo de audio sea mp3 o wav enviarlo desde android mediante un servidor php usando android studio.

    gracias mil por sus ayudas

    ResponderEliminar
  31. Hola, me quedo claro en su mayoría lo que explicaste.. Pero tengo una duda, yo hice una pagina web (mapa) con php y base de datos, quiero que esta pag aparezca en mi webView en Android Studio y que cuando le de clic a un marcador me muestre su información (que se almacena en la BD) ¿Como le hago para hacer que funcione en si?, es decir, ¿Que la app muestre un toast al dar clic en un marcador y esta muestre información q se almacena en la BD?

    ResponderEliminar
    Respuestas
    1. No tengo muy claro como puedes conectar el contenido del webview al toast de android.
      Lo que yo aría es buscar el API de google maps para simplemente descargar los datos de la BD al maps android en tu App. De esta manera los marcadores serán más fáciles.

      Eliminar
    2. Lo que pasa es que me pidieron que fuera asi, mediante una pagina web realizar el mapa.. Pero la verdad yo tampoco se como conectar el webView con el toast en android :/

      Eliminar
  32. Gracias por el tutorial me sirvio mucho...

    ResponderEliminar
  33. Hola, probe el tuto pero no realmente no me sale nada, me pregunto si tiene que ver con que yo uso Android Studio

    ResponderEliminar
  34. Buenas, gracias por el tutorial, pero en el SDK 23 de AndroidStudio la clase HttpClient no está soportada. Podrías decirnos como usar la clase HttpUrlConnection ?

    ResponderEliminar
  35. hola si quiero mandar los datos a mi correo electronico ¿en que parte pongo mi dirección de correo? se pueden enviar datos como difreccion correo telefono y cuerpo de mensaje? como seria el código. para integrarlo en android studio. gracias por tu ayuda

    ResponderEliminar
  36. Genial, mas o menos lo que buscaba, lo cierto es que me conformo con enviar algo por get ( a php) y que este responda simplemente con ok y que android lo lea para saber que ha llegado.

    Veo demasiado codigo para lo que pido, no?. Sobraran cosas.
    Bueno, voy a ir probando y ya veo

    Gracias por darme un (parece ser) buen comienzo :-)

    ResponderEliminar
  37. Que tal amigo. disculpa pero quisiera saber si esto lo puedo usar para enviar información a un servicio en php que escucha a travez de una IP y puerto. Es decir que en vex de especificarle una URL, se puede indicar que envie el texto a una Ip y un puerto en específico ? Por favor si alguien lo sabe. Le agradecería mucho.

    ResponderEliminar
  38. Hola, sé que hay muchas opciones ya inventadas, pero no está mal una más!!!

    Yo necesito saber cómo se puede hacer para transmitir lo que ocurre en la pantalla de mi móvil a un sitio web.
    Algo que sea propio y no usando youtube, daylimotion u otro para transmitir vídeo en vivo de desde el móvil.

    ResponderEliminar
  39. Hola, sé que hay muchas opciones ya inventadas, pero no está mal una más!!!

    Yo necesito saber cómo se puede hacer para transmitir lo que ocurre en la pantalla de mi móvil a un sitio web.
    Algo que sea propio y no usando youtube, daylimotion u otro para transmitir vídeo en vivo de desde el móvil.

    ResponderEliminar
  40. Hola Victor muy bueno tu tutorial, yo te consulto, tengo una app en android que me muestra en pantalla los datos de latitud y longitud, vos me podrás decir como hago para que esta aplicacion envie esos datos a un servicio web php, y hay alguna forma de obtener el id del dispositivo en el que corre la aplicacion? como puedo hacer para que los datos se envien cada cierto tiempo a la BD?
    Como puedo hacer para que corra en segundo plano?
    Muchas gracias.

    ResponderEliminar