You are on page 1of 48

Haz tus aplicaciones para Telfonos Windows!

Iniciativa organizada por:

Agenda
Haz tus aplicaciones para Telfonos Windows
Seleccin de plataforma para el desarrollo mvil Tecnologas incluidas en movilidad Gestin previa al desarrollo en relacin a los requerimientos DEMO: Enva SMS y Correos electrnicos DEMO: Detecta conectividad DEMO: Integra GPS DEMO: Invoca a un Web Service DEMO: Haz tu agenda personal!

Imprescindible al empezar un proyecto

Convenciones de nomenclatura
S.O. Windows Mobile 5
Windows Mobile 5 SmartPhone Edition Windows Mobile 5 Pocket PC Edition Windows Mobile 5 Pocket PC Phone Edition

SDK Windows Mobile 5 Correspondiente


SDK de Windows Mobile 5 Smartphone
SDK de Windows Mobile 5 Pocket PC SDK de Windows Mobile 5 Pocket PC

S.O. Windows Mobile 6.X


Windows Mobile 6.X Standard Windows Mobile 6.X Professional

SDK Windows Mobile 6 Correspondiente


SDK de Windows Mobile 6 Standard SDK de Windows Mobile 6 Professional

Windows Mobile 6.X Classic

SDK de Windows Mobile 6 Professional

Configurar el entorno de Visual Studio

1.

Instalar las herramientas de desarrollo: Instalar las herramientas en el siguiente orden


Visual Studio 2008 ActiveSync 4.5

2.

Seleccionar un dispositivo: Para asegurarse de que se nos avisa cuando se selecciona un dispositivo al desplegar nuestra solucin:
En Visual Studio en el men Herramientas clic en Opciones

(SQL Server 2005/08)

Windows Mobile SDKs.

Herramientas de dispositivo General. Si las herramientas de dispositivo no estn visibles, seleccionar Ver todas las opciones en la parte inferior del cuadro de dilogo de opciones. Seleccionar la casilla de verificacin de Mostrar las opciones de dispositivo antes de desplegar un proyecto de dispositivo. Para incluir el archivo de datos en el proyecto actual, en Archivo de base de datos local Si.

Configurar el entorno de Visual Studio 2005

3.

Crear la aplicacin:
En Visual Studio Archivo clic en Nuevo Proyecto. En el cuadro de Nuevo proyecto en el panel de Tipos de proyecto expandir el nodo Visual Basic o Visual C#. Expandir el nodo Smart Device, seleccionar Windows Mobile 6.0 Pocket PC o Windows Mobile 6.0 Smartphone. En el panel plantillas seleccionar Aplicacin de dispositivo. En el cuadro de Nombre especificar un nombre para el proyecto. En el cuadro Localizacin especificar la ruta donde queremos almacenar el proyecto OK. Una representacin de un dispositivo PPC o Smartphone aparecer en el diseador de Windows Forms. En men Ver Explorador de Servidores.

Configurar el entorno de Visual Studio 2005

4.

Lanzar el emulador de dispositivos: se puede lanzar de dos maneras.


Usando el cuadro de dilogo de Conectar a dispositivo:
1. 2.

En el Visual Studio, hacer clic en Conectar al dispositivo. En el cuadro de dilogo de Conectar al dispositivo de la lista de Plataformas, seleccionar una plataforma de dispositivo, desde el cuadro de Dispositivos seleccionar un emulador y despus hacer clic en Conectar. En Visual Studio, hacer clic en Herramientas y despus hacer clic en Administrador de emuladores de dispositivos. En esa ventana, hacer clic con el botn derecho en el emulador que queramos iniciar y hacer clic en Conectar.

Usando el administrador de emulador de dispositivos:


1. 2.

Configurar el entorno de Visual Studio 2005

5.

Construir y testear la aplicacin en el emulador de dispositivos:


En Visual Studio, hacer clic en Depurar y hacer clic en Iniciar (o iniciar con depuracin). En el cuadro de dilogo de Implementar, seleccionar el emulador y despus hacer clic en Implementar. Se puede ver el progreso en la barra de estado.

Caractersticas del SDK de Windows Mobile 5.0 y 6.0 para Visual Studio
Caractersticas de la API incluidas en los SDKs de Windows Mobile 5.0 y 6.0:
Telefona: la clase Microsoft.WindowsMobile.Telephony.Phone permite programar aplicaciones que pueden iniciar una llamada telefnica. Pocket Outlook: modelo de objetos que ayuda a incorporar datos PIM (Personal Information Manager) dentro de las aplicaciones Windows Mobile 5.0. Proporciona: Soporte administrador tanto para correo como para SMS. Nueva API de mensajera para mostrar los correos electrnicos existentes, usar el sistema de mensajera SMS y formularios de correos para componer nuevos mensajes y controlar la cuenta activa actual en el sistema de mensajera. Sincronizacin de datos en un dispositivo que tenga acceso a un servidor con el IIS de Microsoft (Microsoft Internet Information Services). Configuration Manager: Se puede utilizar el nombre de espacio y ensamblado Microsoft.WindowsMobile.Configuration.ConfigurationManager para configurar un dispositivo. Este nombre de espacio usa XML para enviar la configuracin al dispositivo Windows Mobile 5.0 y 6.0. Esto simplifica la configuracin y el despliegue de proyectos Windows Mobile.

Caractersticas del SDK de Windows Mobile para Visual Studio 2005


API de estado y Notification Broker: proporciona un mecanismo para almacenar aplicaciones en un dispositivo e informacin del estado del sistema.
Caractersticas:

Se accede a ella desde Microsoft.WindowsMobile.Status. Notifica a las aplicaciones acerca de los eventos que estn ocurriendo en el dispositivo o en otras aplicaciones. Por ejemplo, una aplicacin que consume mucha energa puede ser notificada acerca de los cambios en el estado de la batera. Monitoriza y registra claves en el sistema. El archivo de cabecera (snapi.h) contiene definiciones para la clave del registro, ruta, valor y mscara de bits para todas las notificaciones base que son proporcionadas por el sistema. STATE AND NOTIFICATION BROKER API

Accede al sistema de mensajera fcilmente

Espacio de nombres
Microsoft.WindowsMobile.PocketOutlook
1. En Management Studio, abra el Explorador de objetos. 2. En el Explorador de objetos, haga click sobre Conectar y luego seleccione SQL Server Mobile. 3. En el cuadro de dilogo Conectar al servidor, elija la base de datos SQL Server Mobile que desee compactar y haga click en Conectar. 4. En el explorador de objetos, haga click con el botn derecho del ratn sobre la base de datos SQL Server Mobile recin agregada, y a continuacin haga click en Propiedades. 5. En el cuadro de dilogo Propiedades de la base de datos, seleccione Realizar compactacin de la base de datos completa (Perform full database compaction). 6. En Opciones de Archivo (File Options), seleccione la opcin apropiada dependiendo de si lo que se necesita es reemplazar la base de datos o crear una nueva base de datos con un archivo nuevo tras la compactacin. La casilla Sobreescribir el archivo de base de datos existente (Overwrite Existing Database File) modifica el nombre y localizacin de la base de datos existente y la reemplaza

Microsoft.WindowsMobile.PocketOutlook

EmailAcount: representa una cuenta Pocket Outlook e-mail. EmailMessage: representa un e-mail. SmsAccount: proporciona acceso a la cuenta SMS de Pocket Outlook, y a las
carpetas de la cuenta SMS .

SmsMessage: representa un mensaje SMS. Contact: representa un elemento de la coleccin Contact. ContactCollection: representa la coleccin de elementos Contact presentes en
una carpeta de contactos.

ContactFolder: contiene la coleccin Contact.

Microsoft.WindowsMobile.PocketOutlook

Appointment: representa un elemento Appointment en la coleccin de citas. Una cita es un bloque de tiempo que aparece en un calendario Pocket Outlook. Puede tener una fecha de inicio y fin, un lugar y se puede recurrir. Una cita se convierte en una reunin si se programa y se enva a otros contactos. AppointmentCollection: representa la coleccin de elementos cita en una carpeta de citas. AppointmentFolder: contiene la coleccin de citas. Task: representa un elemento tarea en la coleccin de tareas. Una tarea representa un elemento que se puede activar y que se prioriza, se delega o se completa. TaskCollection: representa la coleccin de elementos tarea en una carpeta de tareas. TaskFolder: contiene la coleccin de tareas.

Enviar un mensaje SMS


Crear un objeto de la clase SmsMessage Para enviar un mensaje SMS se ha de especificar el mensaje que se enviar en la propiedad SmsMessage.Body y el destinatario del mensaje mediante el mtodo SmsMessage.To.Add. Tambin se puede especificar que se enve un mensaje de acuso de recibo estableciendo la propiedad SmsMessage.RequestDeliveryReport a true.

Despus de crear el mensaje, se puede enviar el mensaje con el mtodo Send de la clase SmsMessage.

Enviar un mensaje SMS a un destinatario

La clase ChooseContactDialog se puede utilizar para mostrar un Se puede especificar el ttulo del cuadro de dilogo utilizando la
propiedad contactDialog.Title.

cuadro de dilogo que pida al usuario que especifique los detalles de contacto para enviar un mensaje SMS.

Tambin es posible especificar que un mensaje de acuso de recibo se


enve al usuario que enva un mensaje estableciendo el valor de la propiedad SmsMessage.RequestDeliveryReport a true. SmsMessage para enviar el mensaje.

Tras crear el mensaje, se puede utilizar el mtodo Send de la clase


Agregar referencia a Microsoft.WindowsMobile.Forms

Ejemplo: cmo enviar un SMS a un contacto especfico y solicitar un acuso de recibo.

using Microsoft.WindowsMobile.PocketOutlook; using Microsoft.WindowsMobile.Forms;


ChooseContactDialog contactDialog = new ChooseContactDialog(); contactDialog.Title = Seleccionar un usuario para enviar el sms; if (contactDialog.ShowDialog() == DialogResult.OK) { // El constructor del sms necesita el destinatario de entrega SmsMessage message = new SmsMessage( contactDialog.SelectedContact.MobileTelephoneNumber, Saboteamos la red de Samba?"); message.RequestDeliveryReport = true; // Enviar SMS message.Send();

Ejemplo: cmo mandar un SMS a un dispositivo mvil.

SmsMessage smsMessage = new SmsMessage();

smsMessage.Body = Boicoteamos la sesin de RIM y Nokia?"; smsMessage.To.Add(new Recipient(Marta Rod,6627727733")); smsMessage.RequestDeliveryReport = true; smsMessage.Send();
return;

Crear y Enviar E-Mails

Cuando se desarrolla una aplicacin basada en Windows Mobile, se puede integrar mensajera
mediante las clases del espacio de nombres Microsoft.WindowsMobile.PocketOutlook.EmailAccount.

La clase EmailAccount que proporciona una completa funcionalidad para los e-mails Se puede crear un e-mail mediante la clase EmailMessage Se puede enviar con el mtodo Send de la clase EmailAccount a una direccin de correo
especificada.

Ejemplo: crear un e-mail, adjuntar un documento Pocket Word y enviar el mensaje

EmailMessage message = new EmailMessage(); message.To.Add(new Recipient(wm@micmovilidad.es")); message.Subject = Correo de soporte; message.BodyText = Una nueva pregunta ha sido generada por un estudiante + Por favor lee el adjunto para mas detalles"; message.Attachments.Add(new Attachment(@"\My Documents\issue.doc")); using (OutlookSession session = new OutlookSession()) { session.EmailAccounts[0].Send(message); }

21

Accediendo a las clases de Pocket Outlook - Envo de SMS - Envo de e-mail

Controlndolo todo

Introduccin al agente de estado y notificaciones

El agente de estado y notificaciones es un almacn de datos que proporciona un modelo publicador-suscriptor para distribuir notificaciones de cambio de datos. Esta API almacena la informacin del estado, monitoriza cambios en los valores de estado y genera notificaciones sobre el estado de los cambios. Se puede implementar este API en las aplicaciones utilizando las clases disponibles en el ensamblado Microsoft.WindowsMobile.Status El API usa el registro como almacn de datos para almacenar valores en la clave de registro HKEY_LOCAL_MACHINE\System\State mientras que la informacin de estado por usuario se almacena en la clave HKEY_CURRENT_USER\System\State.

Valores de estado del sistema disponibles

Valores de estado del sistema disponibles

Estado de la red del telfono. Se pueden utilizar propiedades del sistema para seguir el estado de disponibilidad de la red y la potencia de seal
Informacin de llamada. Las propiedades del sistema relacionadas con llamadas entrantes, salientes o actuales permiten realizar un seguimiento del estado de las llamadas

Informacin de red. Las propiedades del sistema permiten realizar un seguimiento de la de la red Wi-Fi.

Eventos del Gestor de informacin personal (PIM Personal Information Manager). Con las propiedades del sistema se puede seguir los cambios realizados en el calendario, contactos o tareas.

Valores de estado del sistema disponibles

Batera. Se pueden utilizar las propiedades del sistema para realizar un seguimiento del estado de la batera as como de la potencia restante de la batera principal o de la batera de respaldo.

Mensajera. Las propiedades del sistema permiten seguir los mensajes desde los servicios non-Microsoft ActiveSync e-mail y SMS (Short Message Service).

Consultar los Valores del Sistema Actuales

1. Agregar una referencia al espacio de nombres: agregar una referencia al espacio de nombres
Microsoft.WindowsMobile.Status, este espacio de nombres proporciona clases como StateBase y SystemState que exponen el API del agente de estado y notificaciones.

2. Seleccionar el estado a monitorizar: El enumerador SystemProperty en el Explorador de


Objetos proporciona una lista de propiedades de valores de estado, como PhoneSignalStrength y PhoneRoaming.

3. Agregar una instancia de la clase SystemState: la clase SystemState para recuperar el valor
actual del estado. Se puede utilizar la clase SystemState para generar una notificacin cuando el estado cambia.

4. Agregar un gestor de evento: Con la clase SystemState y un mtodo para manejar el evento
SystemState.Changed. Este evento se lanza cuando cambia un estado del sistema.

5. Responder al cambio de estado: El mtodo SystemState.GetValue devuelve el valor de un estado del sistema.

Monitorizar el estado del GPRS


Solicitar una notificacin mediante un manejador de evento

SystemState gprsCoverage; private void funcion() { this.gprsCoverage = new SystemState (SystemProperty.PhoneGprsCoverage); gprsCoverage.Changed += new ChangeEventHandler(gprsCoverage_Changed); } void gprsCoverage_Changed(object sender, ChangeEventArgs args) { //Aadir la lgica aqu }

Gestin del Uso de la Batera del Dispositivo

Las aplicaciones de recursos intensivos afectan a la potencia de la batera del dispositivo mvil Si se ejecutan varios procesos simultneamente o si se deja la pantalla del dispositivo activa durante un largo periodo de tiempo se consumir batera, reducindose el tiempo de standby del dispositivo

Por tanto se debe monitorizar constantemente el estado de la batera del dispositivo mvil y proporcionar informacin al usuario sobre su estado Las propiedades SystemState.PowerBatteryState y SystemState.PowerBatteryStrength determinan el estado de la batera.

La propiedad
SystemState.PowerBatteryState

Charging

Indica que la batera est cargndose


Critical

Indica que la carga de la batera es muy baja y necesita cargarse inmediatamente


Low

Indica que la carga de batera es baja


Normal

Indica que la batera est cargada adecuadamente


NotPresent

Indica que la batera no hay carga en la batera

La propiedad
SystemState.PowerBatteryStrength

La propiedad SystemState.PowerBatteryStrength recupera el nivel de batera restante en el dispositivo. Esta propiedad indica el nivel de batera a travs de los siguientes valores del enumerador BatteryLevel VeryHigh 81 - 100% High 61 - 80% Medium 41 - 60% Low 21 - 40% VeryLow 0 - 21%

32

Usando la librera Microsoft.WindowsMobile.Status - Control de conectividad en Windows Mobile

Localizando sin parar

Rastrear la ubicacin mediante la API GPS


Usar el espacio de nombres
1. 2.
Microsoft.WindowsMobile.Samples.Location

3. 4.

Crear un proyecto de Aplicacin Windows para dispositivos mviles Copie el contenido de la carpeta C:\Archivos de programa\Windows Mobile 6 SDK\Samples\PocketPC\CS\GPS y pegue el contenido en la carpeta del proyecto de la aplicacin. Agregue el proyecto Microsoft.WindowsMobile.Samples.Location a la solucin. Agregue una referencia al proyecto Microsoft.WindowsMobile.Samples.Location a cualquiera de los proyectos que debe usar el contenedor administrado que proporciona este proyecto.

Cmo inicializar y abrir una conexin


1. En la aplicacin, declarar un objeto de tipo Gps. 2. Crear una nueva instancia del objeto Gps. 3. Capturar los eventos LocationChanged y DeviceStateChanged. 4. Llamar a Open para empezar a recibir notificaciones.

Ejemplo

Ejemplo

Ejemplo

Cerrar la conexin con el controlador intermedio GPS


Proporcione un mtodo para cerrar la conexin con el controlador intermedio del GPS. Llame a este mtodo cuando ya no desee recibir eventos del GPS

40

Integrando GPS con tu aplicacin Windows Mobile

Invocando a objetos remotos va Web

Conectando tu aplicacin con un Web Service

Exprimiendo Outlook Mobile

Agregar contacto

El mtodo AddNew de la clase Contact se utiliza para aadir un contacto. El siguiente ejemplo muestra cmo agregar un contacto: public void AddContact(string firstName, string lastName, string title) { OutlookSession os = new OutlookSession(); Contact contact = os.Contacts.Items.AddNew(); contact.FirstName = firstName; contact.LastName = lastName; contact.Title = title; contact.FileAs = contact.LastName + ", " + contact.FirstName; contact.Update(); }

Agregar tarea
El mtodo AddNew de la clase Task permite adir una nueva tarea. El siguiente ejemplo muestra cmo agregar una nueva tarea.
public void AddTask(string body, string categories, bool complete, DateTime startDate) { OutlookSession os = new OutlookSession(); Task task = os.Tasks.Items.AddNew(); task.Body = body; task.Categories = categories; task.Complete = complete; task.StartDate = startDate; task.Update(); }

Agregar cita
Se puede agregar una cita con el mtodo AddNew de la clase Appointment. El cdigo siguiente muestra cmo aadir una cita: public void AddAppointment(string body, string categories, DateTime startdate) { OutlookSession os = new OutlookSession(); Appointment appointment = os.Appointments.Items.AddNew(); appointment.Body = body; appointment.Categories = categories; appointment.Start = startdate; appointment.Update(); }

Haz tu agenda personal! - Aplicacin Pocket Outlook MobileNUG

Gracias por su asistencia


Mas informacin en www.imaginemobile.es Y en la comunidad de desarrolladores de Mobile NET Users Group www.mobilenug.com

You might also like