Archivo | Android RSS for this section

Sistema de gestión para android

sistema de gestión

 

Es el sistema gestión de empresas más completo realizado en dispositivos Android, funciones como administración de usuarios, mensajería interna, visualización en mapa, pedidos, clientes, productos, informes (PDF) y artículos.
toda la gestión de Ventas, Compras y Proveedores.
Funciones:
– Sincronización de datos
– Administración de usuarios
– Mensajería interna
– Visualización en mapa de los usuarios
– Gestión de los clientes
– Gestión de los productos/artículos
– Gestión de las categorías de los productos
– Gestión de existencias (entrados/sacar)
– Gestión de los movimientos (entrados/sacar por existencias)
– Gestión de los pedidos clientes
– Generación cataloga producido en PDF
– Generación de pedidos al formato PDF
– Envío de los pedidos por Email
– Gestión de los pedidos proveedores

 

Link de descarga

https://play.google.com/store/apps/details?id=amalgame.emanager

 

device-2014-01-08-095116 device-2014-01-08-093008device-2014-01-06-194042

 

 

 

 

 

Anuncios

Ecriptar – Desencriptar datos utilizando una clave privada PKCS12 con JAVA ANDROID

icon_padlock

Este tutorial esta destinado a desarrolladores que quieran incorporar seguridad dentro de sus programas.

Con el fin de crear una firma digital  necesitaremos crear nuestra clave privada ( en nuestro caso del tipo P12 o PKCS12)

para ello ejecutamos la siguiente linea de codigo en la consola de windows o CMD

keytool -genkeypair -alias my_certificate -keystore my_keystore.pfx -storepass my_password -validity 365 -keyalg RSA -keysize 2048 -storetype pkcs12

Ubicaremos el archivo p12 generado en la carpeta res/raw dentro del proyecto y la instanciaremos de la siguiente manera.

KeyStore truststore = KeyStore.getInstance("PKCS12");
InputStream in = context.getResources().openRawResource(R.raw.demop12); // clave prueba 2
truststore.load(in, password.toCharArray());

o podemos seguir este tutorial para generar nuestro keystore. Este keystore lo utilizaremos para generar el algoritmo de encriptación de datos.

Leer Más…

Entendiendo los mensajes de memoria de salida Logcat [android]

Si testeaste tu aplicación alguna ves , seguramente notaste que en el la salida LogCat por eclipse aparecen mensajes como los siguientes

GC_EXPLICIT freed 6K, 41% free 2667K/6151K, external 0K/0K, paused 21ms

GC_CONCURRENT freed 378K, 41% free 3373K/6151K, external 0K/0K, paused 12ms+11ms

GC_CONCURRENT freed 379K, 42% free 3856K/6335K, external 0K/0K, paused 4ms+2ms

GC_CONCURRENT freed 434K, 32% free 2091K/6727K, external 0K/0K, paused 1ms+13ms

GC_EXPLICIT freed 244K, 42% free 3498K/6535K, external 0K/0K, paused 12ms

freed Leer Más…

Sistema Control de Stock & Pedidos [Android]

Control de Stock & Pedidos

Se trata de un completo sistema basado en Android Sdk 4.x para tablets y smartphones de última generación, usuario podrá gestionar pedidos  , clientes y productos  de una forma muy practica e intuitiva, este desarrollo contempla el Alta baja, modificación y listado de todos  subsistemas mencionados.

Este sistema esta desarrollado utilizando estándares de diseño,  bases de datos utilizando ORMLITE, y se estima que este listo a fines de diciembre del corriente año, la entrega es gratuita y estará disponible mediante Google Play.

Integrantes

LinkedIn Exequiel Catalani

LinkedIn Peter Bauman

Existe la posibilidad de que esta primera entrega se realice como sistema open source.

mas detalles en breve.

 

Saludos!!

Un nuevo entrenador se acerca a Android

 

Deja que este experto te guie en tu recorrido..
¿Que mejor que escuchar la mejor musica y el mejor entrenamiento echo por vos mismo y además que un experto te guie?

Ya no necesitas mas tener varios programas juntos..

Solo con Sport Trainer podes obtener el mejor resultado.

Imagen

Realizar un seguimiento y analizar sus resultados, compartir datos de entrenamiento y fotos con sus amigos, y sobre todo – ponerse en forma y mantenerse saludable.

Tenes la posibilidad de enviarte la info de tus sesiones de ejercicio y fotos a tu correo.

Prepararte tus listas de música personalizadas, nuestro entrenador durante el entrenamiento automáticamente parara la música en curso para brindarte toda la info y  luego seguir escuchando tu lista de temas.

Todo esto y más muy pronto en el Market.

Primeros pasos con Sqlite en Android

El motor de bases de datos en Android es Lite. SqLite es una base de datos transaccional que ocupa una porción pequeña de datos en memoria, por esto mismo es perfecto para dispositivos mobiles.

En este articulo explicare las sentencias básicas para insertar y modificar datos así como también creación, conexión y des-conexión y veremos como podemos comprobar que todo funciona correctamente.

Al final del tutorial encontraremos el código fuente para descargar.

Creando nuesta base de datos

Lo primero que tenemos que hacer es crear una Clase que nos administre nuesta DB. Esta clase tendra tareas como crear, insertar y borrar registros etc..
El primer paso sera entonces crear una clase que herede de SQLiteOpenHelper .

Esta clase nos proveerá los métodos que luego sobrescribiremos para manejar nuestra DB:

onCreate(SQLiteDatabase db): Se invoca cuando creamos nuestra base de datos, crea las tablas y columnas, vistas y triggers.

onUpgrade(SQLiteDatabse db, int oldVersion, int newVersion): Se invoca cuando creamos una modificacion a la base de datos como alter o dropping, ademas de crear nuevas tablas.

Bien explicado esto pasamos a nuestro ejemplo.
Nosotros vamos a crear una base de datos muy sencilla llamada BDAgenda, con una sóla tabla llamada Agenda que contendrá sólo dos campos: nombre , apellido y telefono. Para ellos, vamos a crear una clase derivada de SQLiteOpenHelper que llamaremos AgendaSqlite, donde sobrescribiremos los métodos onCreate() y onUpgrade() para adaptarlos a la estructura de datos indicada.

——————————————————————————–
public class AgendaSqlite extends SQLiteOpenHelper {

//Sentencia para crear la tabla de Usuarios
String sqlCreate = "CREATE TABLE Agenda (codigo INTEGER, nombre TEXT, apellido TEXT, telefono TEXT)";
public AgendaSqlite(Context context, String name, CursorFactory factory,int version) {
super(context, name, factory, version);

}

@Override
public void onCreate(SQLiteDatabase db) {
//Se ejecuta la sentencia SQL de creación de la tabla
db.execSQL(sqlCreate);
}


@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// En la practica deberemos migrar datos de la tabla antigua
// a la nueva, por lo que este método debería ser más elaborado.
//Eliminamos la versión anterior de la tabla
db.execSQL("DROP TABLE IF EXISTS Usuarios");
//y luego creamos la nueva
db.execSQL(sqlCreate);
}
}

—————————————————————————–

Dentro de nuestra clase el método onCreate() se ejecutara únicamente cuando sea necesario, en nuestro caso cuando para la creación de la base de datos, osea cuando la misma no exista. Ademas deben ejecutarse las tareas de inicializacion como la inserción de datos iniciales, si es que son necesarios.

Vemos también que nuestra clase tiene un constructor con los siguientes argumentos
context, name, factory, version.

context: El contexto de trabajo.
name: El nombre de nuestra base de datos.
CursorFactory: En este caso es null.
Version: La versión de nuestra DB. Cuando la versión es diferente el motor genera una nueva DB en blanco.

Posteriormente en nuestra Activity llamaremos a AgendaSqlite para instanciar un objeto de dicha clase.
Con nuestro objeto creado usamos el metodo getReadableDatabase() o getWritableDatabase() para obtener una referencia a la base de datos, dependiendo si sólo necesitamos consultar los datos o también necesitamos realizar modificaciones, respectivamente.

—————————————————————————–

public class SqlitedemoActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Abrimos la base de datos 'Agenda' en modo escritura
AgendaSqlite usdbh = new AgendaSqlite(this, "Agenda", null, 1);
SQLiteDatabase db = usdbh.getWritableDatabase();

if(db != null)
{
//Insertamos 5 usuarios de ejemplo
for(int i=1; i<6; i++) {
//Generamos los datos
int codigo = i;
String nombre = "Usuario" + i;
String apellido = "Apellido" + i;
String telefono = "0000" + i;
//Inserta los datos en la tabla Usuarios
db.execSQL("INSERT INTO Agenda (codigo, nombre,apellido,telefono) " +
"VALUES (" + codigo + ", '" +
nombre +"','" +
apellido +"','" +
telefono +"'" +
")");
}
//por ultimo cerramos la base de datos
db.close();
}
     }
}

———————————————————————

Si todo sale bien corremos nuestra aplicacion y se creara nuestra base de datos dentro de la siguiente ubicacion.

/data/data/exequielc.sqlitedemo/databases/Agenda

Para comprobar esto podemos hacer lo siguiente. Una vez ejecutada por primera vez desde Eclipse la aplicación de ejemplo sobre el emulador de Android (y por supuesto antes de cerrarlo) podemos ir a la perspectiva “DDMS” (Dalvik Debug Monitor Server) de Eclipse y en la solapa “File Explorer” podremos acceder al sistema de archivos del emulador, donde podremos buscar la ruta indicada de la base de datos. Podemos ver esto en la siguiente imagen (click para ampliar):

Para visualizar la base de datos podemos descargar el siguiente aplicativo gratuito desde la siguiente ubicacion.
http://sqliteadmin.orbmu2k.de/
Una ves descargado, la ejecutamos y procedemos a abrir nuestro archivo(“Agenda”) generado recientemente.

Bueno espero que les sea util este breve ejemplo,
lo pueden descargar desde aquí.

Saludos!!

Trabajando con fechas en java

Trabajar con fechas en java no es para nada complicado, pero puede llegar a confundirnos si tomamos en cuenta la cantidad de formas que java nos ofrece para hacerlo.

En este articulo explicare brevemente como utilizar las funciones mas comunes y un breve ejemplo/proyecto en Android aplicando lo antes explicado.

Las clases java.util.Date y java.sql.Date. Son las clases mas usadas para el trabajo con fechas.

java.util.Date: La clase java.util.Date representa un instante de tiempo específico, con precisión de milisegundos.

java.util.Date utilDate = new java.util.Date();
System.out.println(“java.util.Date: ” + utilDate);

  • El año “y” está representado por un entero igual a (“y” – 1900). Por ejemplo el año 2004 se representa como 104 (2004 – 1900).
  • Los meses son representados por números entre 0 y 11, donde enero es 0 y diciembre es 11.
  • Los días y minutos se representan de forma corriente. Entre 1 – 31 y 0 – 59 respectivamente.
  • Las horas van entre 0 y 23, donde la medianoche es 0 y el medio día 12.
  • Los segundos van entre 0 y 61. (el 61 solo en casos excepcionales)Si necesitamos obtener el año el mes el dia la hora,minuto o segudo necesitaremos llamar a la clase java.util.Calendar para que nos provea de dicha informacion.

java.sql.Date: Esta clase hereda de java.util.Date y se instancia pasándole un tipo de dato long a su constructor.

java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
System.out.println(“java.sql.Date.: ” + sqlDate);

Pero tambien podemos aplicar la forma inversa de la siguiente manera:
java.util.Date utilDate2 = new java.util.Date(sqlDate.getTime());

Creando nuestro proyecto en Android.

Es muy simple, nuestro codigo  consiste en  un TimePicker en donde seteamos una hora y un EditText donde adicionaremos un numero para agregar “tiempo al tiempo”

Primero definimos las variables que luego utilizaremos

private int mYear;
private int mMonth;
private int mDay;
private int mHour;
private int mMinute;
private TextView tv_resultado;
private EditText ed_duration;
private TimePicker tp_time;
private Button btn_calcular;
static final int TIME_DIALOG_ID = 0;
private java.util.Date utilDate;

y obtenemos todos los elementos de nuestro xml

tv_resultado = (TextView) findViewById(R.id.tv_resultado);
ed_duration = (EditText) findViewById(R.id.ed_duration);
tp_time = (TimePicker)findViewById(R.id.tm_time);
btn_calcular = (Button)findViewById(R.id.btn_calcular);

Instanciamos un objeto desde la clase Calendar y extraemos la fecha hora actual.
final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);
mHour = c.get(Calendar.HOUR_OF_DAY);
mMinute = c.get(Calendar.MINUTE);

Luego en el evento click del botón aplicamos el proceso de calculo.

Creamos un objeto de tipo java.util.Date pasandole la fecha hora antes obtenida.

utilDate = new java.util.Date(mYear, mMonth, mDay, mHour, mMinute);

usamos utilDate.getTime() para calcular nuestro tiempo previamente definido.

long d = utilDate.getTime() + duration * 60 * 1000;

Convertimos a fecha nuestro resultado

Date resDate = new Date(d);

Y finalmente mostramos el objeto fecha formateado usando SimpleDateFormat
SimpleDateFormat formatter = new SimpleDateFormat(“dd/MM/yy HH:mm”);

tv_resultado.setText(formatter.format(resDate));

Dejo el fuente del codigo para descargar..desde aquí.

Espero que les sirva..Saludos!!