• Like
  • Save
Modulo15 Background File Transfers
Upcoming SlideShare
Loading in...5
×
 

Modulo15 Background File Transfers

on

  • 1,942 views

En este vídeo veremos cómo realizar transferencia de ficheros en Background para que un fichero se siga descargando en Background aunque la aplicación no esté ejecutándose. También veremos que ...

En este vídeo veremos cómo realizar transferencia de ficheros en Background para que un fichero se siga descargando en Background aunque la aplicación no esté ejecutándose. También veremos que capacidades de comunicación por sockets nos deja a nuestra disposición Windows Phone.

Statistics

Views

Total Views
1,942
Views on SlideShare
1,942
Embed Views
0

Actions

Likes
0
Downloads
1
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Modulo15 Background File Transfers Modulo15 Background File Transfers Document Transcript

    • 19/09/2011 Nuevos servicios en Background Background Background Notifications Transfers Multitasking Background Background Agents Audio Transferencia de archivos en Background Requisitos de la aplicación Descargas archivos ejecutándose segundo plano  Transferencias iniciadas por el usuario o consciente Continúan aunque aplicación no esté ejecutándose primer de que se están ejecutando plano  Posibilidad de mostrar transferencias en proceso Posibilidad de encolar transferencias (subidas o descargas)  Posibilidad de cancelar transferencias activas o APIs consulta estado transferencias e indicadores de progreso pendientes Nombre de espacio: Microsoft.Phone.BackgroundTransferService  Posibilidad forzar transferencias sólo cuando haya • BackgroundTransferService gestión transferencias existentes WiFi • BackgroundTransferRequest  una única petición • GET HTTP descarga y POST HTTP subida  Obligatorio  Recomendado 1
    • 19/09/2011 Restricciones del sistema de archivos Cabeceras reservadas Transferencias requieren ruta archivo local  BackgroundTransferRequest.Headers almacena • Descargas ruta específica de almacenamiento caberas HTTP • Subidas  ruta en la que se encuentra el archivo a enviar  Cabeceras reservadas al SO• Todas las rutas locales en almacenamiento aislado en  If-Modified-Since  If-None-Match directorio Transfers  If-Range  Range • Creado por el SO durante instalación  Unless-Modified-Since • Puede albergar estructura de directorio adicional  Agregar alguna a la colección de cabeceras • Iniciar transferencia fuera directorio Transfers  NotSupportedException !! Exception!! Políticas de transferencia de archivos Políticas de transferencia de archivos Transferencias iniciadas cuando se cumplan requisitos  SO obliga a cumplir restricciones BackgroundTransferRequest.TransferPreferences Máximo número total de transferencias concurrentes 2 (de todas las aplicaciones del dispositivo) Máximo número total de transferencias encoladas 500 SO obliga a cumplir restricciones Límites (de todas las aplicaciones del dispositivo) Máximo número de cabeceras HTTP por petición 10 Máximo archivo subida 5MB Máximo tamaño de cabeceras HTTP 16K cada una 20 MB (Si se sobrepasa  TransferPreferenc es cambia a Máximo tamaño de descarga en conexión de datos Máximo tamaño de descarga sobre WiFi sin AllowBattery  se precisa WiFi para la transferencia)  Servicio de transferencia segundo plano 100MB Tamaños alimentación externa  No se ejecuta en redes Máximo tamaño de descarga sobre WiFi con alimentación externa y TransferPreferences = None Sin límite • 2G o AllowCellular • EDGE 5 ( transferencias no eliminadas de la cola automáticamente Máximo número de peticiones en cola (activas y  aplicaciones deben llamar al método • GPRS Estándar pendientes) / aplicación Remove(backgroundTransferR equest)  Requiere redes 3G o superiores 2
    • 19/09/2011 Mejores prácticas Mejores prácticas Tras lanzar la aplicación  Al agregar nuevas transferencias o Recorrer cada transferencia en background mediante o Comprobar si se ha llegado al límite de 5 transferencias simultáneas BackgroundTransferenceService.Request • Límite alcanzado  alertar al usuario y esperar cancelar alguna transferencia guardar en almacenamiento aislado información de la nueva o Registrar evento TransferStatusChanged en cada una transferencia y lanzarla después • Útil para responder a cambios de estado o Llamar al método BackgroundTransferenceService.Add() en bloque try catch  Mostrar mensaje si excepción o Registrar evento TransferProgressChanged en cada una o Utilizar /Shared/Transfers como directorio raíz • Útil para informar acerca del progreso de transferencias activas • Especificar propiedad DownloadLocation en archivos de descarga • Especificar propiedad UploadLocation en archivos de subida o Comprobar si ha finalizado o cambiado el estado de cada una o Especificar dirección del servidor remoto en la propiedad RequestUri en la propiedad TransferStatus escapar caracteres especiales con Uri.EscapeUriString Mejores prácticas Mejores prácticas Cuando una transferencia finaliza  Interfaz de Usuario o Transferencia iniciada por el usuario  ej. mediante un botón o Propiedad TransferStatus tendrá valor Completed o Transferencia iniciada por la app  informar al usuario o Vista del estado y progreso de todas las transferencias o Comprobar en StatusCode si fue exitosa (200 ó 206) o Mecanismo para cancelar cualquiera o todas las transferencias o Restringir transferencias a la existencia de alimentación externa y o Comprobar TransferError si no se completó correctamente WiFi o Ofrecer al usuario opción de permitir transferencias sobre redes de o Llamar al método BackgroundTransferenceService.Remove() para datos y sin alimentación externa (TransferPreferences) eliminarla de la cola (límite 5 transferencias) o Si la transferencia está en un estado de espera  notificar al usuario con un mensaje la razón, posibilidad de cancelar 3
    • 19/09/2011 Mejores prácticas Mejores prácticas Otras  En el servidor o No modificar archivo destino del directorio /Shared/transfers hasta o Incluir en las cabeceras de respuesta Content-lenght fin de transferencia  indica tamaño y progreso o Propiedad Tag para almacenar datos personalizados asociados a una transferencia o Debe soportar peticiones Range  soporte para o Manejadores de evento TransferStatusChanged y pausar y resumir transferencias TransferProgressChanged deben retornar rápido o Acceso almacenamiento aislado en otro hijo o Probar funcionalidad del servidor desde una aplicación distinta a la de transferencias o TotalBytesToReceive tamaño del archivo (navegador…) Requisitos adicionales de certificación Transferencia de archivos en BackgroundRequisito Pruebas 1. Lanzar la applicación.  DemoMinimizar consumo batería con pantalla 2. Bloquear el dispositivo.bloqueada 3. Verificar que la aplicacación detiene alizaciones del UI, timers activos y demás actividades no críticas. How to: Implement Background File Transfers for 1. Lanzar la applicación. Windows Phone Batería superior a 6 2. Reproducir un archivo de música. horas 3. Bloquear el dispositivo.Apps que reproducen 4. Comprobar que el tiempo de batería es superior a 6 horas.audio bajo pantalla 1. Lanzar la applicación.bloqueada App en estado idle si no 2. Verificar que no se está reproduciéndo ningún archivo de música. estaba reproduciendo 3. Bloquear el dispositivo. música al bloquear 4. Comprobar que la aplicación no reproduce música y está en estado idle. 1. Cargar el dispositivo al 100%.Apps que no 2. Activar modo vuelo. Batería superior a 120reproducen audio bajo 3. Lanzar la applicación. horaspantalla bloqueada 4. Bloquear el dispositivo. 5. Comprobar que el tiempo de batería es superior a 120 horas. 4
    • 19/09/2011 Recursos Centro de desarrollo de WP7 en MSDNhttp://msdn.microsoft.com/es-es/windowsphone/default.aspx AppHubhttp://create.msdn.com/ Windows Phone Developer Bloghttp://windowsteamblog.com/windows_phone/b/wpdev MobileNUGhttp://www.mobilenug.es Forumshttp://forums.create.msdn.com/forums/ 5