Si recordamos nuestro articulo Windows Phone 7 – Tutorial III–Modelo de Ejecución teníamos la definición de un concepto importante en el ciclo de vida de nuestra aplicación y eran los Launchers y Choosers, si recordamos las definimos
Launcher & Chooser: Son todas aquellas aplicaciones que vienen con el teléfono, como llamadas, mensajes, cámara y que nuestra aplicación podrá invocar. La diferencia entre Launcher y Chooser se puede resumir en que los Launchers no devuelven ninguna información de su ejecución y en cambio los Choosers si devuelven información al termino de su ejecución, un ejemplo para verlo mas claro un Launcher es una llamada de teléfono y un Chooser es la llamada a la cámara de fotos que nos devolverá la foto que ha realizado el usuario.
Windows Phone nos proporciona una API para cada uno de estos Launchers y Choosers, de esta manera podremos utilizarnos en nuestras aplicaciones.
Los Launchers se encuentran en el namespace Microsoft.Phone.Tasks y son los siguientes
- EmailComposeTask – Permite al usuario enviar un e-mail.
- MarketplaceDetailTask – lanza el Windows Phone Marketplace,
- MarketplaceHubTask – lanza Windows Phone Marketplace, permite especificar una categoría para mostrar por .
- MarketplaceReviewTask – .
- MarketplaceSearchTask – Lanza la búsqueda en Windows Phone Marketplace, a partir del texto
- MediaPlayerLauncher – Lanza la aplicación Media Player con el fichero que especifiques. Los codec que soporta puedes comprobarlos aquí
- PhoneCallTask – Llama por teléfono con el numero indicado.
- SearchTask – Realiza búsquedas en Bing.
- SMSComposeTask – Lanza la aplicación de SMS.
- WebBrowserTask – Lanza el navegador con la url especificada.
He hecho una pequeña aplicación con una botonera con todos los launchers además de un Textbox, la finalidad del textbox es que rellenéis el textbox antes de dar a algún launcher para que comprobéis que cuando pasáis a un Launcher al volver a la aplicación, lo que habéis escrito ha desaparecido, en otros posts mas adelante veremos como solucionar este problema (tombstone).
Los Choosers están en el mismo espacio de nombres y son:
- CameraCaptureTask – permite que el usuario saque una fotografía directamente desde la aplicación.
- EmailAddressChooserTask – permite seleccionar una dirección de correos desde los contactos.
- PhoneNumberChooserTask – permite al usuario seleccionar un numero de teléfono desde sus contactos.
- PhotoChooserTask – permite seleccionar una foto de la galería de fotos.
Cada Chooser tiene sus propiedades a la hora de llamarlos que al igual que los Launchers se realiza con el método Show(), pero lo que debemos de saber es como recoger el resultado de la acción del usuario como por ejemplo la foto que ha sacado el usuario. Para ello todos los Choosers tienen el evento Completed que se lanza cuando el usuario ha realizado la acción. Por ejemplo para PhotoChooserTask utilizaríamos el siguiente código
1 private void btnPhotoChooserTask_Click(object sender, RoutedEventArgs e) 2 { 3 PhotoChooserTask pct = new PhotoChooserTask(); 4 pct.ShowCamera = true; 5 pct.Completed += new EventHandler<PhotoResult>(pct_Completed); 6 pct.Show(); 7 } 8 9 void pct_Completed(object sender, PhotoResult e) 10 { 11 if (e.TaskResult == TaskResult.OK) 12 { 13 var picture = e.ChosenPhoto; 14 BitmapImage imgBitmap = new BitmapImage(); 15 imgBitmap.SetSource(picture); 16 17 //Asignamos la imagen a un objeto de la aplicación 18 imgPlaceholder.Source = imgBitmap; 19 } 20 } 21
He realizado una pequeña aplicación con los Choosers que existen para que veais su utilización
Abajo os dejo una tabla con las características de los Launchers y Choosers
Task |
Launcher |
Chooser |
Devuelve Datos |
Tombstoning |
Suspende Aplicación |
CameraCaptureTask |
X |
X |
X |
X |
|
EmailAddressChooserTask |
X |
X |
X |
X |
|
EmailComposeTask |
X |
||||
MarketplaceDetailTask |
X |
||||
MarketplaceHubTask |
X |
||||
MarketplaceReviewTask |
X |
||||
MarketplaceSearchTask |
X |
||||
MediaPlayerLauncher |
X |
X |
X |
||
PhoneCallTask |
X |
X |
|||
PhoneNumberChooserTask |
X |
X |
X |
X |
|
PhotoChooserTask |
X |
X |
X |
X |
|
SaveEmailAddressTask |
X |
|
X |
|
|
SavePhoneNumberTask |
|
|
X |
|
|
SearchTask |
X |
|
|
|
|
SmsComposeTask |
X |
|
|
|
|
WebBrowserTask |
X |
|
|
|
|
Tombstone para Windows Phone no es el deporte de saltar al mar desde un acantilado En Windows Phone hablamos