venerdì 30 marzo 2012

Scaricare dati GPX da Garmin su Linux

Dovendo scaricare i dati (in formato GPX) dal Garmin 76CSx con interfaccia USB su Linux (Ubuntu)



la prima cosa da fare e' montare il modulo
modprobe garmin_gps
successivamente accendere il GPS

venerdì 23 marzo 2012

App full screen

Per evitare la scrittura del nome dell'applicazione nella parte alta dello schermo si puo' inserire nel Manifest.xml alla sezione application il comando

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"


mercoledì 14 marzo 2012

un metodo per trasportarei dati del programma (per esempio un database o della cartografia) insieme all'apk e' quello di inserire il file dentro la cartella assets del progetto Android. Nel codice seguente viene prima controllato tramite un list quali sono i file in assets e poi vengono copiati mediante uno stream nella SDCard dopo aver creato la directory

Il problema e' che questo tipo di soluzione non e' sempre ottimale perche' appesantisce l'apk e poi crea una duplicazione dello spazio disco perche' di fatto il file contenuto dentro assets viene copiato solo la prima volta sulla SD e poi diventa inutile
 
        //copy from assets to sd card
        AssetManager assetManager = getAssets();
        String[] files = null;
        try {
         files = assetManager.list("");
        } catch (IOException e){
         
        }
        for (String filename : files){
         InputStream in = null;
         OutputStream out = null;
         File osmdir = new File(Environment.getExternalStorageDirectory(),"osmdroid");
         if (!osmdir.exists()) osmdir.mkdirs();
         
         try {
          in = assetManager.open(filename);
          out = new FileOutputStream(Environment.getExternalStorageDirectory()+"/osmdroid/"+filename);
          byte[] buffer = new byte[1024];
          int read;
          while ((read=in.read(buffer))!=-1){
           out.write(buffer,0,read);
          }        
         } catch (IOException e){}
        }

Esperimenti di mappe

Ho fatto qualche primo esperimento con Osmdroid, una libreria Android che permette di gestire mappe offline in particolare quelle di OpenStreetMap

 
La procedura prevede l'importazione di due librerie nella Build Path e cambiare il Manifest ma per il resto e' piuttosto banale. I dati vanno inseriti nella SD card nella cartella osmdroid

Ritardo

alcune volte e' necessario ritardare l'esecuzione di un comando

Thread.sleep(tempo in millisecondi);

martedì 13 marzo 2012

Offline Maps

 Per sviluppare una applicazione di navigazione avevo bisogno di una basa cartografica gratuita e non legata alla connessione ad Internet. Il problema e' stato risolto mediante il software MOBAC (http://mobac.sourceforge.net/) che permette di scaricare in vari formati i dati relativi principalmente ad Openstreetmap vestiti in vario mod.
Puo'essere selezionato il numero di livelli di zoom da salvare (Zoom Levels, varia a seconda della fonte scelta), ed il provider delle informazioni 


MOBAC con sovrapposta una traccia GPX (in rosso) per riferimento   
. 
Scelta del provider delle mappe


Per una corretto utilizzo conviene in Layer Settings scegliere Recreate/Adjust Map Tiles sul formato PNG.

Scelta del formato di salvataggio dati
Uno dei passaggi finali e' scegliere da Atlas Content il formato in cui saranno salvati  i dati (per il mio utilizzo la soluzione e' Osmdroid Zip) dato che usero' la libreria java OsmDroid
Si termina con Create Atlas e....si aspetta

I dati vengono salvati nella subdir atlases nel formato scelto

venerdì 9 marzo 2012

Con naso all'insu

Una serata quasi invernale (8 Marzo 2012 ore 21:20 circa) , una digitale da 2 MegaPixel, un cavalletto, un telefono Android e le finestre di casa

Giove e Venere nel cielo di Caldine


Giove e Venere su Google Skymap di Android


Giove e Venere in Stellarium (Linux)


Luna e Marte nel cielo (maledetta Luna)


Luna e Marte in Google SkyMap di Android


Luna e Marte in Stellarium (Linux)

Realta' Aumentata

un primo esempio di Realta' Aumentata con un programma basato su Mixare  e android-augment-reality-frameworke inserendo con una base dati locale (ovvero senza connessione ad Internet)

martedì 6 marzo 2012

Conversion to Dalvik format failed with error 1

Nel caso, in fase di compilazione, compaia il messaggio sopra riportato (in particolare cercando di compilare un progetto importato) la soluzione risiede nel controllare le librerie Android che vengono caricate cliccando sul Progetto, selezionando Java Build Path e controllando la correttezza delle librerie

giovedì 1 marzo 2012

Clonare un progetto Git


git clone git://github.com/mixare/mixare.git mixare

Installare app sull'emulatore

Per installare le App sull'emulatore Android senza passare dal Market si puo' utilizzare da riga di comando

adb install app.apk

.nomedia

In automatico il programma per la visualizzazione di fotografie di Android effettua una ricerca in tutte le sottocartelle della scheda SD. Questo e' comodo per alcuni versi ma vedere le foto delle copertine degli album nella cartella Musica insieme alle fotografie personali non e' molto gradevole.

Per fare in modo di escludere una directory dalla ricerca automatica e' sufficiente creare un file vuoto denominato .nomedia all'interno della cartella. Le immagini saranno comunque consultabili con un normale File Manager in caso di necessita'

Mirino sulla macchina fotografica

Per l'uso in un'altra applicazione avevo bisogno di inserire un mirino sull'immagine da riprendere con il telefono. Questa funzione non e' implementata di default e non e' di difficile realizzazione; in pratica si pone un oggetto ImageView con una immagine PNG trasparente al di sopra dell'anteprima (SurfaceView) della fotocamera
Visualizzazione sullo schermo del telefono

Foto salvata sul telefono
Per i sorgenti effettuare il download dell'applicazione CameraOV dal mio account GitHub