* R AMAN K AZHAMIAKIN O SCAR Z G IOVANNI D E ITT M. B UONARROTI, T RENTO A NDROID D EVELOPMENT M APPE.

Slides:



Advertisements
Presentazioni simili
Map & Go℠ Creazione e utilizzo di Mappe Offline
Advertisements

EyEvents è lApp più innovativa, completa e aggiornata per programmare la partecipazione agli eventi in oftalmologia!
ITIS “E. Divini” corso di formazione sul concept mapping
CONOSCIAMO IL WINDOWS '95.
Liste di Interi Esercitazione. Liste Concatenate Tipo di dato utile per memorizzare sequenze di elementi di dimensioni variabile Definizione tipicamente.
Liste Ordinate 3 Maggio Ultima Lezione Abbiamo visto i tipi di dato astratti IntList e StringList Realizzano liste di interi e di stringhe Realizzati.
Introduzione al linguaggio C
Laboratorio di Linguaggi note sull'uso dell' IDE DevC++ Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese.
Sistemi Operativi GESTIONE DEI PROCESSI.
JAVA Security. Jdk1.0 sandBox Ilo sistema di sicurezza JAVA si basa sulla struttura della seandBox. In base a tale politica tutte le applicazioni eseguite.
Breve guida a Symbaloo di Marco Chizzali.
1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... ASP. Net Web Part e controlli di login Elaborazione di Franco Grivet Chin.
Google maps.
Location Manager. Come localizzare? GPS Più accurato Solo outdoor Alto consumo batteria Non molto veloce Android's Network Location Provider Utilizza.
DBMS ( Database Management System)
e per generare Bibliografie
Android questo sconosciuto … Cosa sapere per poter cominciare a sviluppare Apps Cosa sapere per poter cominciare a sviluppare Apps. Alessandro Franceschetti.
Windows Movie Maker.
WORD PROCESSOR Redatto dal Prof. Fabio Rodomonte
Iniziamo a usare il computer
EBSCOhost Collection Manager Account selezionatore Tutorial.
66. Rubrica La Rubrica vi consente di raccogliere gli indirizzi di posta elettronica. Potete accedere dalla rubrica dallinterno del programma di posta.
Server Web in una rete Windows Sommario Meccanismi di accesso remoto Meccanismi di accesso remoto Introduzione ai Server Web Introduzione ai Server.
& FACEBOOK Web - Editing. Le Pagine FAN di Facebook Uno strumento di marketing per Promuovere un ente/azienda/scuola Diversamenta da un gruppo ha degli.
BIOINFO3 - Lezione 331 SUBROUTINE IN PERL Una subroutine (funzione, metodo, procedura o sottoprogramma), e` una prozione di codice all`interno di un programma.
LEZIONE 13 INFORMATICA GENERALE Prof. Luciano Costa
Le maschere Una maschera è un oggetto del database utilizzato principalmente per l'inserimento, la visualizzazione e la modifica dei dati in un database.
USO DEL COMPUTER E GESTIONE DEI FILE
Introduzione a Windows Lezione 2 Riccardo Sama' Copyright  Riccardo Sama'
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
INVIO DI UN’OFFERTA TELEMATICA TRAMITE LA PIATTAFORMA SISGAP
Riferimento rapido per l’app © 2013 Microsoft Corporation. Tutti i diritti riservati. Schermata iniziale di Lync I riquadri dell'hub a sinistra nella schermata.
Uso di WinRar e Winzip.
Introduzione a Windows (Seconda parte) Lezione 3 Riccardo Sama' Copyright 
Internet e HTML Diffusione di informazioni mediante la rete Internet.
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
ESPANSIONE Personalizzare l’interfaccia utente 2010.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Liste Concatenate 11 Aprile E’ una delle strutture dati fondamentali in tutti i linguaggi di programmazione di alto livello Una Lista Concatenata.
1 Laboratorio di Introduzione alla Programmazione §II MODULO §3 crediti §Esame e voto unico (su 6 crediti totali)
Universita` degli studi di Perugia Corso di Laurea in Matematica Attribute Certificate Valentina Hamam Rosa Leccisotti.
ELABORAZIONE TESTI MICROSOFT WORD EM 09.
Esercitazione del 9 marzo 2007 Ereditarieta’. Richiami Definire sottoclassi (ereditarieta’) Overriding Specificatori di accesso (private, protected) Principio.
LIP: 4 Maggio 2007 Interfacce. Cos’e’ una Interfaccia una interfaccia e’ un particolare tipo di classe contiene solo la specifica non ha implementazione.
CORSO INTERNET la Posta elettronica
USO DEL COMPUTER E GESTIONE DEI FILE
CREAZIONE UTENTE SU ORACLE1 Lanciate Enterprise Manager Console dal Menu Start -> Programmi -> Oracle - OraHome92 (modalità standalone) Scegliete di adottare.
Microsoft Access Filtri, query. Filtri Un filtro è una funzione che provoca la visualizzazione dei soli record contenenti dati che rispondono a un certo.
Fare clic per modificare lo stile del sottotitolo dello schema Programmare con.
SISTEMA INFORMATIVO DI SUPPORTO ALLA GESTIONE DEGLI APPALTI PUBBLICI INVIO OFFERTA INVIO DI UN’OFFERTA TELEMATICA TRAMITE LA PIATTAFORMA SISGAP SISGAP.
Un sito con Wordpress Includere Digital-mente – Corso livello 4 docente: prof.ssa MANUELA MARSILI.
SISTEMA GESTIONE TOMBINI
* R AMAN K AZHAMIAKIN O SCAR Z G IOVANNI D E ITT M. B UONARROTI, T RENTO A NDROID D EVELOPMENT C ONCORRENZA.
* R AMAN K AZHAMIAKIN O SCAR Z G IOVANNI D E ITT M. B UONARROTI, T RENTO A NDROID D EVELOPMENT S ERVIZI E N OTIFICHE.
* R AMAN K AZHAMIAKIN O SCAR Z G IOVANNI D E ITT M. B UONARROTI, T RENTO A NDROID D EVELOPMENT E LEMENTI BASE.
Corso di programmazione di sistemi mobile 1 1 Android Laboratorio Primo Progetto, Toast.
Impariamo ad usare Excel. Utilizzare l’interfaccia Avviare Excel e iniziare ad esplorare l'interfaccia per acquisire familiarità con esso… Non c'è modo.
Il mercato delle App Il mercato delle App Apple: Le categorie più ricercate Apple: Le categorie più ricercate Come si scoprono le App Come si scoprono.
+ Geolocalizzazione Nicolò Sordoni. + Servizi di localizzazione In Windows Phone, la posizione dell’utente può essere rilevata in 3 differenti modi: GPS:
Gestire i dati: download e salvataggio. L’importanza dei dati La quasi totalità delle applicazioni hala necessità di gestire varie funzionalità relative.
Acquisizione dati su movida e free WiFi nel comune di Trieste tramite l’app GeoODK To be AN urban sensor Viola Defend Giuseppe.
IV Corso di formazione INFN per amministratori di siti GRID Tutorial di amministrazione DGAS Giuseppe Patania.
04/06/2016Francesco Serafini INDICO Corso Nazionale Novembre 2007.
* R AMAN K AZHAMIAKIN O SCAR Z G IOVANNI D E ITT M. B UONARROTI, T RENTO A NDROID D EVELOPMENT UI PERSONALIZZATE.
Usare le mappe. MapKit Per utilizzare le mappe all’interno di uno specifico VIewController, è sufficiente inserire al suo interno una view di tipo MKMapView.
Gestire la navigazione. Creare un’app multi Controller La quasi totalità delle app è suddivisa in più ViewControllers, ognuno con specifiche funzionalità.
* R AMAN K AZHAMIAKIN O SCAR Z G IOVANNI D E ITT M. B UONARROTI, T RENTO A NDROID D EVELOPMENT P ERSISTENZA.
* R AMAN K AZHAMIAKIN O SCAR Z G IOVANNI D E ITT M. B UONARROTI, T RENTO A NDROID D EVELOPMENT Liste e dynamic.
Android Intent, AlertDialog, SharedPreferences. Intents.
28/06/2016Francesco Serafini INDICO Parte 2. 28/06/2016Francesco Serafini CREAZIONE EVENTI Gli eventi possono essere creati in qualsiasi categoria, che.
Transcript della presentazione:

* R AMAN K AZHAMIAKIN O SCAR Z G IOVANNI D E ITT M. B UONARROTI, T RENTO A NDROID D EVELOPMENT M APPE

* * 1.MapFragment 2.Markers 3.MarkersDialog (infoWindow) 4.GPS 5.Tiles 6.Usare le tile di OperStreetMap Sommario

* *

* * InfoWindows, custom InfoWindows...

* * My position, custom markers, polylines, clusters...

* * Preparazione Installare i Google Play Services SDK ●Lanciare Android SDK Manager: cliccare Window > Android SDK Manager oppure ●Installare i Google Play services: scorrere fino in fondo la lista dei pacchetti, espandere Extras, scegliere Google Play services e installarli. ●Importare la libreria: Cliccare File > Import, scegliere Android > Existing Android Code into Workspace, cercare il progetto della libreria e importarla. Il percorso è /extras/google/google_play_services/libproject/google-play-services_lib/ Suggerimento: procedimento simile a come abbiamo importato appcompat!

* * Preparazione #2 Aggiungere i Google Play services al manifest Modificare il file AndroidManifest.xml e aggiungere la dichiarazione all’elemento. Questo include la versione di Google Play services. <meta-data android:name="com.google.android.gms.version" />

* * Preparazione #3 Per usare i server di Google Maps bisogna aggiungere una Maps API key all’app. La key è gratis, puoi usarla in qualsiasi tua applicazione e supporta infiniti utenti. È possibile ottenere la Maps API key dalla Google APIs Console fornendo il certificato con cui si “firma” l’app e il nome package. Ottenere la key richiede diversi passaggi: 1.Ottenere le informazioni del certificato dell’app 2.Registrare il progetto nella Google APIs Console e aggiungere le Maps API come servizio per il progetto 3.Richiedere una key o più 4.Aggiungere la key all’app e… iniziare a sviluppare!

* * Preparazione: certificato La Maps API key si basa su una breve stringa rappresentante il certificato digitale con cui viene firmata l’app, il SHA-1 fingerprint, che è unica e quindi usata per identificare la tua app. Ci sono due certificati: Debug certificate: generato dagli Android SDK tools quando si fa debug o si lancia l’app da Eclipse ad esempio. Da usare solo in testing! Release certificate: generato dagli Android SDK tools quando si esporta il file.apk per rilasciare l’app; si genera usando il programma keytool.

* * ●Cerchiamo il file debug.keystore: cercare la posizione cliccando Windows > Prefs > Android > Build. ●Se già in quelle opzioni non trovate la voce “SHA-1 fingerprint” usare il comando keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android ●Si ottiene l’output: Certificate fingerprints: MD5: AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6A:AC:F9SHA1: BB:0D:AC:74:D3:21:E1:43:07:71:9B:62:90:AF:A1:66:6E:44:5D:75 Signature algorithm name: SHA1withRSA Version: 3 Preparazione: ottieni SHA-1 fingerprint da debug

* * ●Andare alla Google APIs Consolehttps://code.google.com/apis/console/ ●Creare un nuovo progetto ●Tra i servizi attivare Google Maps Android API v2 ●Selezionare API Access > Create New Android Key… ●Inserire la stringa fingerprint;package, es.: BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75;com.exa mple.android.mapexample ●Si ottiene una stringa simile a: AIzaSyBdVl-cTICSwYKrZ95SuvNw7dbMuDt1KG0 Preparazione: Google APIs Console

* * Nel AndroidManifest.xml, subito prima del tag di chiusura, inserire: Preparazione: aggiungi la key al progetto <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="API_KEY"/> dove API_KEY è la stringa ottenuta dalla console: AIzaSyBdVl-cTICSwYKrZ95SuvNw7dbMuDt1KG0

* * Preparazione: aggiungi i giusti permessi Aggiungo i permessi e la richiesta di uso delle OpenGL ES versione 2.

* * Preparazione: il fragment con la mappa Nel layout inserire il fragment in questa maniera (notare android:name)

* * Habemus Google Maps!

* * Markers Un marker è un icona visibile ad una certa posizione sulla mappa. Proprietà: Alpha - opacità Title - il titolo Snippet - la Descrizione Icon - Un’immagine che lo rappresenta Draggable - flag che indica se il marker è trascinabile Visible - nasconde o mostra il marker

* * mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); mMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Hello world!")); Aggiungere un Marker

* * Custom MarkerDialog (InfoWindow) Possiamo scegliere di cambiare il fumetto che appare al click di un marker, per farlo dobbiamo: 1.implementare InfoWindowAdapter 1.getInfoWindow(Marker) viene sempre chiamato, cambia l’intero fumetto 2. getInfoContents(Marker) viene chiamato solo se il metodo precedente ritorna null. cambia solo il contenuto del fumetto. 2.chiamare il metodo.setInfoWindowAdapter(nostroAdapter) mMap.setInfoWindowAdapter(this).

* * Esempio di InfoWindowAdapter Personalizzato class MyInfoWindowAdapter implements InfoWindowAdapter { private final View mymarkerview; public MyInfoWindowAdapter() { mymarkerview = getLayoutInflater().inflate(R.layout.qualcosa, null,false); } public View getInfoWindow(Marker marker) { return mymarkerview; } public View getInfoContents(Marker marker) { return null; }

* * Ulteriori cose da sapere: ●Per cambiare il comportamento quando un fumetto viene tappato: ○ mMap.setOnInfoWindowClickListener(OnInfoWindowClickListe ner) Maggiori info al link: s/GoogleMap.OnInfoWindowClickListener.html s/GoogleMap.OnInfoWindowClickListener.html ●Per muovere la mappa, programmaticamente: ○mMap.moveCamera(CameraUpdateFactory.newLatLng(new LatLng(lat, long))); Tutte le opzioni disponibili su: maps/CameraUpdateFactory.html ●Tutto il resto su:

* * Conquistare il mondo... E adesso siete pronti per...

* * Localizzazione È possibile utilizzare il GPS e l’Android Network Location Provider per acquisire la posizione dell'utente. Anche se il GPS è più preciso, funziona solo all'aperto, consuma rapidamente la batteria e non restituisce la posizione velocemente. L’Android Network Location Provider determina la posizione dell'utente utilizzando le celle dei ripetitori, le reti Wi-Fi, risponde più velocemente e utilizza meno energia. Si può utilizzare sia il GPS e il Network Location Provider, o solo uno. Sono necessari questi permessi:

* * Localizzazione #2 // Ottengo una referenza al Location Manager del sistema LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); // Definisco un LocationListener che reagisce agli aggiornamenti della location LocationListener locationListener = new LocationListener() { public void onLocationChanged(Location location) { // Chiamato quando una nuova location è trovata faiQualcosaConLaNuovaLocation(location); } public void onStatusChanged(String provider, int status, Bundle extras) {} public void onProviderEnabled(String provider) {} public void onProviderDisabled(String provider) {} }; // Iscrivi il listener al Location Manager per avere gli aggiornamenti locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);

* * Localizzazione #3 // In attesa ottieni l’ultima posizione conosciuta String locationProvider = LocationManager.NETWORK_PROVIDER; // oppure LocationManager.GPS_PROVIDER Location lastKnownLocation = locationManager.getLastKnownLocation(locationProvider); // Rimuovi il listener locationManager.removeUpdates(locationListener);

* * Cambiare le tile mMap.setMapType(GoogleMap.MAP_TYPE_NONE); TileProvider tileProvider = new UrlTileProvider(256, 256) public URL getTileUrl(int x, int y, int z) { try { String url = “ ”; return new URL(String.format(url, z, x, y)); } catch (MalformedURLException e) { return null; } }; mMap.addTileOverlay(new TileOverlayOptions().tileProvider(tileProvider));