Corso di Laurea in Ingegneria Informatica, Elettronica e delle Telecomunicazioni SISTEMA OPERATIVO ANDROID Interfacce di comunicazione Sensori Android@Home Google TV Giuseppe Loseto Corso di Sistemi Operativi A. A. 2012 - 2013 Sistemi Operativi A.A. 2012/13 Interfacce di comunicazione DEI - Politecnico di Bari USB Wi-Fi Bluetooth NFC (Near-Field Communication) NFC Bluetooth RFID compatible ISO 18000-3 active Standardisation body ISO/IEC Bluetooth SIG Network Standard ISO 13157 etc. IEEE 802.15.1 Network Type Point-to-point WPAN Cryptography not with RFID available Range < 0.2 m ~100 m (class 1) Frequency 13.56 MHz 2.4–2.5 GHz Bit rate 424 kbit/s 2.1 Mbit/s Set-up time < 0.1 s <6s Power consumption < 15mA (read) varies with class Android – Giuseppe Loseto Sistemi Operativi A.A. 2012/13 DEI - Politecnico di Bari Interfacce di comunicazione: USB Android supporta differenti periferiche e accessori USB attraverso due modalità: USB accessory mode L’hardware USB esterno opera come host USB. Questi dispositivi devono essere compatibili con Android accessory communication protocol. Es: docking stations, card readers. USB host mode Il dispositivo Android opera come host. Questi dispositivi possono interagire direttamente con applicazioni Android. Es: videocamere digitali, tastiere, controller di gioco. Quando un dispositivo Android è in modalità USB host, esso alimenta il bus ed enumera i dispositivi USB collegati. La modalità host USB è supportata in Android 3.1 e superiori. Android – Giuseppe Loseto Sistemi Operativi A.A. 2012/13 DEI - Politecnico di Bari Android Open Accessory Development Kit permette di integrare dispositivi Android (al momento solo via Usb e Bluetooth) con qualsiasi altro dispositivo che implementi a bordo la logica di interfaccia definita un dispositivo USB (Android USB accessory) può interagire con un dispositivo Android in modalità accessory” i dispositivi Android USB sono progettati specificamente per connettersi sfruttando l’Android accessory protocol l’ADK prevede un’implementazione basata su piattaforma Arduino Android – Giuseppe Loseto Sistemi Operativi A.A. 2012/13 DEI - Politecnico di Bari Interfacce di comunicazione: Wi-FI Android 4.0 (API level 14) permette ai dispositivi di connettersi direttamente tra loro via Wi-Fi, senza un access point intermedio Usando le WiFi Direct API, è possibile scoprire e connettersi ad altri dispositivi che supportano il Wi-Fi Direct Connessione veloce su distanze maggiori rispetto a Bluetooth Utile per le applicazioni che condividono molti dati tra utenti, quali giochi multiplayer o applicazioni per la condivisione di audio/video/immagini Le Wi-Fi Direct API sono composte da: I metodi che permettono di identificare, inviare richieste e connessioni ai peer definite nella classe WifiP2pManager. I listeners che gestiscono le notifiche derivanti da chiamate a metodi WifiP2pManager. Quando si chiamano i metodi WifiP2pManager, ogni metodo può ricevere uno specifico listener come parametro. Gli intents che rilevano eventi specifici Wi-Fi, come la perdita di una connessione cade o la rilevazione di un nuovo peer. Android – Giuseppe Loseto Sistemi Operativi A.A. 2012/13 DEI - Politecnico di Bari Interfacce di comunicazione: Bluetooth Android supporta lo stack Bluetooth, che permette a differenti dispositivi di scambiare dati con una comunicazione senza fili. A livello applicativo è possibile utilizzare Bluetooth sfruttando le Android Bluetooth APIs. Queste APIs permettono di stabilire una connessione pointto-point o multipoint. Attraverso le Bluetooth APIs, un’applicazione Android può eseguire le seguenti operazioni: Effettuare scansioni alla ricerca di altri dispositivi Bluetooth Interrogare l’adattatore Bluetooth locale per creare associazioni con dispositivi Bluetooth rilevati Stabilire una connessione attraverso un servizio di service discovery Trasferire dati da/verso altri dispositivi Gestire connessioni multiple Due tipologie di permessi per l’utilizzo delle APIs nelle applicazioni BLUETOOTH: richiedere o accettare una connessione, trasferire dati; BLUETOOTH_ADMIN: effettuare il device discovery, modificare le impostazioni Bluetooth Android – Giuseppe Loseto Sistemi Operativi A.A. 2012/13 DEI - Politecnico di Bari Interfacce di comunicazione: NFC Near Field Communication (NFC) è una tecnologia a corto raggio senza fili (<4 cm o meno per avviare una connessione) NFC permette di condividere piccole quantità di dati tra un tag NFC e un dispositivo Android o tra due dispositivi Android. I tag possono variare in complessità. Tag semplici sono abilitati sono per operazioni di lettura/scrittura. Tags più complessi possono integrare micro-dispositivi per l’esecuzione di codice sul tag. I dati memorizzati nel tag seguono lo standard NFC noto come NDEF (NFC Data Format Exchange). Utilizzi principali di NFC su Android: Leggere dati NDEF da un tag NFC Inviare messaggi NDEF tra due dispositivi Android Anche per NFC occorre abilitare il relativo permesso <uses-permission android:name="android.permission.NFC" /> Android – Giuseppe Loseto Sistemi Operativi A.A. 2012/13 DEI - Politecnico di Bari Interfacce di comunicazione: NDEF Record I dati in formato NDEF sono incapsulati in messaggi detti NdefMessage contenenti uno o più NdefRecord. Ogni NDEF record è composto da header e payload Identifier: ID univoco del record. Type: descrive il tipo record. Payload: il dato reale da leggere o scrivere. NB: Poiché un messaggio NDEF può contenere più record NDEF non è detto che l’intero payload sia nel primo record NDEF del messaggio. Android – Giuseppe Loseto Sistemi Operativi A.A. 2012/13 Sensori (1/3) DEI - Politecnico di Bari Monitorare i cambiamenti nella posizione del dispositivo e il movimento Determinare le condizioni ambientali, quali temperatura, pressione, umidità e livello di illuminazione È possibile accedere a questi sensori e acquisire i dati grezzi del sensore mediante l’Android Sensor Framework Classi e interfacce che consentono di: Determinare quali sensori sono disponibili su un dispositivo Determinare le capacità di un singolo sensore, come ad esempio il suo range massimo, produttore, requisiti di alimentazione e risoluzione Acquisire dati grezzi del sensore e definire il rate minimo a cui si acquisiscono i dati Attivare e disattivare il listener che identifica i cambiamenti del sensore Android – Giuseppe Loseto Sistemi Operativi A.A. 2012/13 Sensori (2/3) DEI - Politecnico di Bari L’Android sensor framework è una parte del package android.hardware ed include le seguenti classi ed interfacce: SensorManager Questa classe contiene i metodi per per accedere ad un sensore ed acquisire dei dati. Contiene inoltre delle costanti di riferimento utili per modificare le impostazioni per le operazioni di acquisizione. Sensor Crea un’istanza di un sensore specifico. SensorEvent Classe utilizzata per definire un evento generato da un sensore. Ogni evento include i dati grezzi letti dal sensore, il tipo di sensore che lo ha generato, l’accuratezza dei dati ed il timestamp associato all’evento. SensorEventListener Usato per ricevere delle notifiche quando i dati provenienti dal sensore o la sua accuratezza cambiano. Android – Giuseppe Loseto Sistemi Operativi A.A. 2012/13 Sensori - Esempio DEI - Politecnico di Bari mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE); mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); public void onSensorChanged(SensorEvent event) { // alpha is calculated as t / (t + dT) // with t, the low-pass filter's time-constant // and dT, the event delivery rate final float alpha = 0.8; gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0]; gravity[1] = alpha * gravity[1] + (1 - alpha) * event.values[1]; gravity[2] = alpha * gravity[2] + (1 - alpha) * event.values[2]; linear_acceleration[0] = event.values[0] - gravity[0]; linear_acceleration[1] = event.values[1] - gravity[1]; linear_acceleration[2] = event.values[2] - gravity[2]; } Android – Giuseppe Loseto Sistemi Operativi A.A. 2012/13 Sensori (3/3) DEI - Politecnico di Bari Sensor Type Description TYPE_ACCELEROMETER Hardware Measures the acceleration force in m/s2 that is applied to a device on all three physical axes. TYPE_AMBIENT_TEMPERATURE Hardware Measures the ambient room temperature in degrees Celsius (°C). TYPE_GRAVITY Software or Hardware Measures the force of gravity in m/s2 that is applied to a device on all three physical axes (x, y, z). TYPE_GYROSCOPE Hardware Measures a device's rate of rotation in rad/s around each of the three physical axes (x, y, and z). TYPE_LIGHT Hardware Measures the ambient light level (illumination) in lx. TYPE_LINEAR_ACCELERATION Software or Hardware Measures the acceleration force in m/s2 that is applied to a device on all three physical axes (x, y, and z), excluding the force of gravity. TYPE_MAGNETIC_FIELD Hardware Measures the ambient geomagnetic field for all three physical axes (x, y, z) in μT. TYPE_ORIENTATION Software Measures degrees of rotation that a device makes around all three physical axes (x, y, z). TYPE_PRESSURE Hardware Measures the ambient air pressure in hPa or mbar. TYPE_PROXIMITY Hardware Measures the proximity of an object in cm relative to the view screen of a device. This sensor is typically used to determine whether a handset is being held up to a person's ear. TYPE_RELATIVE_HUMIDITY Hardware Measures the relative ambient humidity in percent (%). TYPE_ROTATION_VECTOR Software or Hardware Measures the orientation of a device by providing the three elements of the device's rotation vector. TYPE_TEMPERATURE Hardware Measures the temperature of the device in degrees Celsius (°C). This sensor implementation varies across devices and this sensor was replaced with the TYPE_AMBIENT_TEMPERATURE sensor in API Level 14 Android – Giuseppe Loseto Sistemi Operativi A.A. 2012/13 Android Activity Recognition DEI - Politecnico di Bari API che permettono al sistema di riconoscere se l’utente è fermo o in movimento Presentate nel corso del Google I/O 2013, fanno parte delle Google Play services APIs Funzionalità non presenti nativamente nella piattaforma Android Aggiungono una serie di servizi aggiuntivi implementati da Google Non viene utilizzato il GPS, ma unicamente i sensori pre-installati nel dispositivo, come l’accelerometro Anche per questa funzionalità occorre abilitare il relativo permesso <uses-permission android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION" /> Developer Guide: http://developer.android.com/training/location/ activity-recognition.html HTML - Floriano Scioscia Sistemi Operativi A.A. 2012/13 DEI - Politecnico di Bari Android@Home Presentato durante Google I/O 2011 Architettura per ambienti domestici basata su device Android connessi con nuovi servizi Google Internet of Things vision, un trend in rapida evoluzione in cui gli oggetti del mondo reale sono collegati ad Internet Android – Giuseppe Loseto Sistemi Operativi A.A. 2012/13 Project Tungsten DEI - Politecnico di Bari Sistema Hi-Fi basato su Android OS Comandabile a distanza attraverso un tablet Android Supporto a NFC (Near-Field Communication) Collegamento alla libreria cloud di Google Music (beta) e riproduzione in streaming di contenuti musicali Android – Giuseppe Loseto Sistemi Operativi A.A. 2012/13 Android-based Devices DEI - Politecnico di Bari Samsung Zipel Smart Oven forno a microonde utilizzabile attraverso un’applicazione dedicata per smartphone Android presentato durante CES 2012 In futuro le fotocamere digitali Samsung potrebbero utilizzare un sistema operativo basato su Android Android – Giuseppe Loseto Sistemi Operativi A.A. 2012/13 Google TV DEI - Politecnico di Bari piattaforma Smart TV sviluppata da Google, Intel, Sony e Logitech inizialmente lanciato il 6 ottobre 2010, con i dispositivi ufficiali Sony e Logitech integra Android e la versione Linux del browser Google Chrome per creare overlay interattivi add-on per SDK Android, che permette a tutti gli sviluppatori di creare applicazioni per la Smart TV Google nuovi partner tra cui LG e Samsung Android – Giuseppe Loseto Sistemi Operativi A.A. 2012/13 Google TV – Version History DEI - Politecnico di Bari Version Release Date Android Version Devices Supported Version Improvements 2.1 2010-10 2.1 Included in Sony Internet TV devices. Original version. 2.1 Update 1 2011-10-23 2.1 For Sony Internet TV devices NSZ-GT1, NSX24GT1, NSX-32GT1, NSX-40GT1 and NSX46GT1. 3.1 2011-12-12 3.1 Released for Logitech Revue devices Updated to Android 3.1 For Sony Internet TV devices NSZ-GT1, NSX24GT1, NSX-32GT1, NSX-40GT1 and NSX46GT1. Improved stability and performance of the Android operating system. Update the system to Android 3.1 platform. Adds Bluray 3D support for the NSZ-GT1 device. Updates in Chrome and Flash. 3.2 2012-03-06 3.2 3.2 2nd Gen 2013-05-15 4.2.2 --- Android – Giuseppe Loseto Announced at Google I/O 2013 Sistemi Operativi A.A. 2012/13 DEI - Politecnico di Bari Google TV Internet Player from Sony (NSZ-GS7) Android – Giuseppe Loseto Sistemi Operativi A.A. 2012/13 Google TV DEI - Politecnico di Bari Android Apps applicazioni basate su Android Web Apps siti web ottimizzati per Google TV Multi-screen Apps utilizzano uno smartphone Android come controller sfruttano i protocolli Pairing Protocol, usato per il riconoscimento tra client e server su una rete locale Anymote Protocol, permette ad applicazioni in esecuzione su dispositivi remoti di inviare comandi (eventi) a dispositivi Google TV Android – Giuseppe Loseto Sistemi Operativi A.A. 2012/13 Android per l’Automotive DEI - Politecnico di Bari Dispositivi per In-vehicle Infotainment (IVI) basati su Android Collaborazione tra Google e General Motors Volt, la nuova berlina "elettrica" di Chevrolet potrà contare su una stretta integrazione fra il sistema digitale di bordo "OnStar" e i dispositivi mobile basati su Android l'utente-guidatore potrà indicare il luogo di destinazione e ricevere istruzioni dettagliate visualizzate su mappe fornite da Google Android – Giuseppe Loseto Sistemi Operativi A.A. 2012/13 Riferimenti DEI - Politecnico di Bari NFC Forum Specifications http://www.nfc-forum.org/specs/ How to develop for Google TV? https://developers.google.com/tv/?hl=it-IT Android – Giuseppe Loseto