Thursday, October 30, 2008

Apps without borders

Una de las politicas de las aplicaciones para aplicaciones en android, para mi muy acertada, es la de traer internet al mundo real. Usar el movil juntando servicios que existen en la red pero dandole un uso fuera de la silla, escritorio y monitor.

Este es un video explicativo de ingenieros de android.

Monday, October 27, 2008

Acabando Implementacion

Hagamos un recuento de cosillas que toca iCua:

- Layout independiente horizontal vertical segun se gire el dispositivo.
- Escaneo de la SDCARD en busca de mp3, donde se registran artistas, albums y canciones
- Portadas y fotos de artisatas.
- poder reporducir playlist aleatoria, por autor, por album o playlist propia.
- MediaPlayer en servicio para poder navegar por el movil
- Streaming de fichero perfecto
- Streaming verdadero implementado, no soportado por android, no se ha podido mejorar con lo que hay disponible. He decidido no tocar codigo nativo. Pega algun salto
- Streaming verdadero con lastfm. Radios
- Radio por artistas similares a...
- Radio por estilos de musica
- Guardar cancion de la Radio y añadirla a la libreria
- Estadisticas de reporduccion sobre LASTFM tanto radio como ficheros de la libreria.

Estos puntos estan implementados, para la release 1.0, algunos falta integrarlos en el programa principal

Tareas que quedan:

- Pulir la integración de los puntos anteriores
- Streaming de dispositivo a dispositivo( una vez conseguido el de radio no esta tan lejos)
- añadir efectos y animaciones a los layouts

Saturday, October 25, 2008

Links para no perder

Uso del Emulador y limitaciones
http://code.google.com/android/reference/emulator.html#connecting

API lastfm
http://www.lastfm.es/user/dahnielson/journal/2007/08/07/8nrm_last.fm_radio_protocol
http://www.lastfm.es/api/mobileauth
http://tutorialninjas.net/2007/01/31/lastfm-audioscrobbler-the-social-music-revolution/
http://swik.net/Last.fm/Plugin+API

Component HorizontalSlider
http://www.helloandroid.com/node/250?page=0%2C1

Thursday, October 23, 2008

Internet access android

Llevaba algun tiempo con fallos en las descargas de las caratulas e imagenes de los artistas, no sabia muy bien por que razón sucedia.

java.net.SocketException: unknown error

Esta era la excepcion que saltaba al lanzar el código del post anterior.

Pues bien, Android a partir de la Beta 0.9, hasta la release 1.0 que es la actual, requiere que le digamos explicitamente que queremos usar internet, medida razonable pero que en la M3 M5 no sucedia.

Esto lo arreglamos con la siguiente linea en el AndroidManifest.xml

< uses-permission android:name="android.permission.INTERNET" / >

Wednesday, October 22, 2008

Android Source Code

Android ya es opensource,

Ayer salió la noticia de la pubicación del codigo fuente de la plataforma.

http://source.android.com/

Precio de la Release 1.0

En la nueva versión de la SDK de android uno se va dando cuenta de cosillas que no se entiende para que las tocam.

Este caso ha sido la descarga de ficheros y streams de entrada y salida. En las anteriores versions de android sin problema, pero ahora mismo cóndigo( el cual corre sobre java normal en un pc) no hay manera de que ande... en fin..

public static void download(String address, String localFileName) {
OutputStream out = null;
URLConnection conn = null;
InputStream in = null;
try {
URL url = new URL(address);
out = new BufferedOutputStream(
new FileOutputStream(localFileName));
conn = url.openConnection();
in = conn.getInputStream();
byte[] buffer = new byte[1024];
int numRead;
long numWritten = 0;
while ((numRead = in.read(buffer)) != -1) {
out.write(buffer, 0, numRead);
numWritten += numRead;
}
System.out.println(localFileName + "\t" + numWritten);
} catch (Exception exception) {
exception.printStackTrace();
} finally {
try {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
} catch (IOException ioe) {
}
}

Tuesday, October 21, 2008

Android Servicios Remotos

Cuando definamos servicios remotos, las interfaces que pudes usar para acceder al mismo deben estar incluidas en el androidmanifest, OJO CON LAS MAYUSCULAS!!!! es case sensible y puede provocar muchos dolores de cabeza ya que nunca os hará bind.

Monday, October 20, 2008

Services Android

Llevo días, por no decir semanas con fallos en mi aplicación android y sin ser capaz de saber porqué falla.
Todo el tema de servicios en Android a mi gusto esta muy confuso.

Primero hay que diferenciar Servicios locales o Remotos, locales corren en el mismo proceso y remotos pueden correr en cualquier otro. Yo en iCua empecé con Locales por problemas con los remotos, pero por funcionalidad me he tenido que pasar a los Remotos.

Una vez tenemos eso podemos iniciarlos y detenrlos con mas o menos dificultad, pero hay que definir una interface si queremos poder interactuar con el servicio desde cualquier aplicación. Esto se hace mediante aidl, la verdad que sobre aidl ningun problema, todo parece bastante claro.

El Problema lo he tenido siempre al hacer el "bind" y usarlo mediante la interfaz... siempre me petaba la aplicacion o en su defecto lo hacia algunas veces que es todavia peor.

Al ejecutar un metodo del servicio justo despues de hacer bind, no tenia en cuenta que bind es asincrono, asi que a veces se da el caso que android le da preferencia a la actividad y continua con el flujo en el que estaba y este llama al metodo de la interfaz encontrandose con el servicio no disponible y petando todo. Esto pasa en el emulador, y se puede solucionar con un sleep de al menos 4-5 segundos, pero queda claro que en aplicacion real se va a tener que hacer un bucle de espera, ya que vete a saber que tal se maneja el procesador de los HTC.... es un punto feo por el que puede petar o puede que no.