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
Scarica

Android - Parte 5 - SisInf Lab