lunes, 10 de octubre de 2011

Leer los archivos los directorios del iPhone y Android con Adobe AIR

Parte fundamental de una aplicación para iPhone o Android será poder saber en que directorios se encuentra la aplicacion y los datos de la misma. Afortunadamente podemos leer y escribir información en los dispositivos móviles desde AIR. Contamos con las clases File y FileStream, así como el método resolvePath() y la propiedad nativePath. Un ejemplo de una clase que lea los directorios principales del dispositivos (en relación a la aplicación) sería el siguiente:

package com.app.dirFile {
    import flash.display.Sprite;
    import flash.filesystem.File;
   
    public class DirFile extends Sprite{

        public function DirFile() {
            init();
        }
       
        private function init(){
            salida_txt.text = "applicationDirectory: " + File.applicationDirectory.nativePath+ "\n\n";
            salida_txt.appendText("applicationStorageDirectory: " + File.applicationStorageDirectory.nativePath + "\n\n");
            salida_txt.appendText("userDirectory: " + File.userDirectory.nativePath + "\n\n");
            salida_txt.appendText("documentsDirectory: " + File.documentsDirectory.nativePath+ "\n\n");
            salida_txt.appendText("desktopDirectory: " + File.desktopDirectory.nativePath+ "\n\n");
            salida_txt.appendText("applicationDirectory URL: " + File.applicationDirectory.url+"\n\n");
            salida_txt.appendText("desktopDirectory URL: " + File.desktopDirectory.url +"\n\n");           
        }
    }
}
iPhone no soporta la opcíon de desktopDirectory ni applicationDirectory, a comparación de Android que si las soporta.

jueves, 6 de octubre de 2011

Marcar una llamada telefónica desde tu iPhone con ActionScript 3.0

Aunque usted no lo crea, el iPhone también sirve para hacer llamadas telefónicas. Solo necesitamos invocar el protocolo "tel:" más el número que deseamos marcar. Se levantará el servicio telefónico del equipo y se realizará la llamada como si la hubiera marcado desde el teléfono. El código básico para realizar una llamada es el siguiente:

package  {
    import flash.display.MovieClip;
    import flash.net.URLRequest;
    import flash.net.navigateToURL;
    import flash.events.MouseEvent;
   
   
    public class Telefono extends MovieClip {
       
       
        public function Telefono() {
            init()
        }
       
        private function init(){
            marcar_btn.addEventListener(MouseEvent.CLICK, onMarcar);
        }
       
        private function onMarcar(e:MouseEvent):void {
            var num:String = "tel:"+telefono_txt.text;
            ejecutaComando(num);
        }

        private function ejecutaComando(comando:String):void{
            var req:URLRequest = new URLRequest(comando);
            try{
                navigateToURL(req);
            }
            catch(e:Error){
                trace("Ocurrio un error");
            }
        }
    }
   
}
En el archivo fla necesitará una caja de texto de entrada (del tipo que desee) y un botón con el nombre de instancia marcar_btn

martes, 4 de octubre de 2011

Detectar la geolocalizacion en iPhone con ActionScript 3.0

Por medio de dos clases podemos recibir la psoción geográfica del iPhone: Geolocation y GeolocationEvent.

La clase GeolocationEvent.nos proporciona los datos de geolocalización. Estos datos son los siguientes:


Propiedad isSupported:Boolean indica si el dispositivo soporta la geolocalización

Propiedad muted:Boolean Indica si el usuario autoriza el uso del geolocalizador en su dispositivo

Método setRequestedUpdateInterval(interval) Establece el intervalo en milisegundos de la frecuencia de monitoreo del geolocalizador

Evento StatusEvent.Indica si el usuario modificó el acceso al geolocalizador

Evento GeolocationEvent. Actualiza cuando el sensor del dispositivo actualiza la localización

La estructura clásica previa al uso del geolocalizador es la siguiente:

if (Geolocation.isSupported)
{
     var geo:Geolocation = new Geolocation();
     geo.setRequestedUpdateInterval(200);
     geo.addEventListener(GeolocationEvent.UPDATE, onGeo);
     geo.addEventListener(StatusEvent.STATUS, onGeoStatus);
}
else
{
    trace("Lo siento, no posees GPS");
}

Dentro del objeto de evento del manejador GeolocationEvent.UPDATE tendremos los siguientes parámetros:

altitude La altitud en metros.
heading La dirección del movimiento en grados (0–359) donde el norte es cero.
horizontalAccuracy Exactitud horizontal en metros
latitude Latitud en gradosentre  90 y –90. Si es positiva es norte y negativa el sur.
longitude Longitud entre 180 y –180.Positivo es este y negativo oeste.
speed Velocidad de movimiento en metros por segundo
timestamp Tiempo de actualización del sensor en milisegundos
verticalAccuracy Exactitud vertical en metros.