miércoles, 14 de octubre de 2015

BD: PYP, MySQL y Json

JSON: acrónimo de JavaScript Object Notation, es un formato ligero para el intercambio de datos. JSON es un subconjunto de la notación literal de objetos de JavaScript que no requiere el uso de XML
Videos JSON:
https://www.youtube.com/watch?v=LXKQLuJQmAg
https://www.youtube.com/watch?v=gc0R59W-ezo
https://www.youtube.com/watch?v=khvEdnFmBEw

Login en Android:
http://androideity.com/2012/07/05/login-en-android-usando-php-y-mysql/

Obtener imagen almacenada en BD MySQL:
http://jhernandz.es/noticia/obtener-imagen-almacenada-mysql-android

Bases de Datos en Android

4 formas básicas de manejar BD:

  1. SQLite: que almacena los datos en la memoria del móvil en Android/data/paquete/Data bases
  2. MySQL y PHP: el código es parseado con Json.
  3. JDBC: con el conector de java y las operaciones a la BD.
  4. Titanium studio: los datos se puede exportar usando este IDE.

viernes, 9 de octubre de 2015

Tarea. Entrega Lunes 12 de oct

Realizar experimentos con arduino para obtener los datos de la temperatura ambiente y pasarlos a Excel. Los datos deberán ser tomados cada 15 min durante 24 horas. Ya que estén en Excel deberán graficar los datos con gráfico de dispersión.

miércoles, 7 de octubre de 2015

Llamadas-control de telefono

Para comenzar necesitamos agregar los permisos requeridos en el Manifiesto (manifest.xml)
<uses-permission android:name="android.permission.CALL_PHONE"/>
Luego en la clase que estemos programando, importamos los siguientes espacios de nombres
import android.content.Intent;
import android.net.Uri;
Y finalmente creamos un intent nuevo, y lanzamos la actividad
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:+5959614580005"));
startActivity(intent);

Programar cámara

http://www.jc-mouse.net/android/tomar-fotos-con-la-camara-y-guardar-en-la-sdcard
1. Abre el archivo AndroidManifest.xml para añadir los permisos necesarios, estos son:
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Estos permisos te permiten manipular la cámara desde la aplicación y escribir en el sdcard.
2. Abre el archivo activity_main.xml, nuestra interfaz estará compuesta de un solo botón, el código XML es el siguiente:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/btnTomaFoto"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:text="@string/strTomaFoto" />

</RelativeLayout>
Importante, el ID del botón es “btnTomaFoto“, no olvides también crear un string para el texto del botón.
3. Finalmente el código para tomar la foto, abre el archivo “MainActivity.java” y reemplaza por:
01 package com.bolivia.tomafoto;
02 import java.io.File;
03 import java.io.IOException;
04 import java.text.SimpleDateFormat;
05 import java.util.Date;
06
07 import android.net.Uri;
08 import android.os.Bundle;
09 import android.os.Environment;
10 import android.provider.MediaStore;
11 import android.annotation.SuppressLint;
12 import android.app.Activity;
13 import android.content.Intent;
14 import android.util.Log;
15 import android.view.Menu;
16 import android.view.View;
17 import android.widget.Button;
18
19 public class MainActivity extends Activity {
20  
21 private final String ruta_fotos = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) + "/misfotos/";
22     private File file = new File(ruta_fotos);
23     private Button boton;
24     
25  @Override
26  protected void onCreate(Bundle savedInstanceState) {
27   super.onCreate(savedInstanceState);
28   setContentView(R.layout.activity_main);
29   //======== codigo nuevo ========
30   boton = (Button) findViewById(R.id.btnTomaFoto);
31   //Si no existe crea la carpeta donde se guardaran las fotos
32   file.mkdirs();
33   //accion para el boton
34   boton.setOnClickListener(new View.OnClickListener() {
35
36    @Override
37    public void onClick(View v) {
38     String file = ruta_fotos + getCode() + ".jpg";
39     File mi_foto = new File( file );
40     try {
41                  mi_foto.createNewFile();
42              } catch (IOException ex) {             
43               Log.e("ERROR ", "Error:" + ex);
44              }      
45              //
46              Uri uri = Uri.fromFile( mi_foto );
47              //Abre la camara para tomar la foto
48              Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
49              //Guarda imagen
50              cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
51              //Retorna a la actividad
52              startActivityForResult(cameraIntent, 0);
53    }
54
55   });
56   //====== codigo nuevo:end ======
57  }
58
59  /**
60  * Metodo privado que genera un codigo unico segun la hora y fecha del sistema
61  * @return photoCode
62  * */
63  @SuppressLint("SimpleDateFormat")
64  private String getCode()
65  {
66   SimpleDateFormat dateFormat = new SimpleDateFormat("yyyymmddhhmmss");
67   String date = dateFormat.format(new Date() );
68   String photoCode = "pic_" + date; 
69   return photoCode;
70  }
71  
72  @Override
73  public boolean onCreateOptionsMenu(Menu menu) {
74   // Inflate the menu; this adds items to the action bar if it is present.
75   getMenuInflater().inflate(R.menu.main, menu);
76   return true;
77  }
78 }