Upload
paris-android-user-group
View
1.330
Download
1
Embed Size (px)
Citation preview
Présentation GENYMOBILE
SEMINAIREChâteaux de la Volonière
Ice Cream Sandwich : brisons la glace
API level ● 1 : Android 1.0● 2 : Android 1.1● 3 : Android 1.5 Cupcake● 4 : Android 1.6 Donut● 5 : Android 2.0 Eclair● 6 : Android 2.0.1● 7 : Android 2.1● 8 : Android 2.2 Froyo● 9 : Android 2.3.1 Gingerbread● 10 : Android 2.3.3
● 11 : Android 3.0 Honeycomb● 12 : Android 3.1● 13 : Android 3.2
● 14 : Android 4.0 Ice Cream Sandwich● 15 : Android 4.0.3
FORMATION Introduction
API de contacts enrichie ● Accès au profil utilisateur● Ajout d'invitations pour les réseaux sociaux
Unification des calendriers et des voicemails● API calendrier● API voicemails
Communication entre appareils● NFC● WiFi Direct● Bluetooth médical
Interface utilisateur● GridLayout● Switch, PopupMenu et ActionBar● ActionProvider
Autres nouveautés● Caméra● Gestion des entrées● Contrôle des applications multimédia● Gestion du VPN et des certificats
FORMATION What's new ?
Nouvelle table :● ContactsContract.Profile
Nouvelles permissions : ● READ_PROFILE● WRITE_PROFILE
SyncAdapter● Permet d'inviter les contacts directement
depuis l'application People● Possibilité d'intercepter des intents pour les
contacts et groupes Autres nouveautés● Support de photos 256x256 avec
ContractsContract.DisplayPhoto● ContactsContract.DataUsageFeedback
FORMATION API de contacts
Accès par tables● CalendarContract.Calendars● CalendarContract.Events● CalendarContract.Reminders● CalendarContract.Attendees● CalendarContract.Instances● CalendarContract.ExtendedProperties
Nouvelles permissions
● READ_CALENDAR● WRITE_CALENDAR
Création d'évènement par intent● Intent.ACTION_INSERT● CalendarContract.Events.CONTENT_URI● Pas de permission requise
FORMATION API calendrier
Accès par tables● VoicemailContract.Voicemails● VoicemailContract.Status
Nouvelles permissions
● ADD_VOICEMAIL
FORMATION API voicemails
Nouveautés du NFC● Possibilité d'envoi de messages NDEF● Applications : échange de liens, contacts, fichiers...
WiFi Direct
● Package android.net.wifi.p2p● Permissions ACCESS_WIFI_STATE et CHANGE_WIFI_STATE, INTERNET● Nouveaux intents
○ WIFI_P2P_PEERS_CHANGED_ACTION○ WIFI_P2P_THIS_DEVICE_CHANGED_ACTION○ WIFI_P2P_STATE_CHANGED_ACTION○ WIFI_P2P_CONNECTION_CHANGED_ACTION
● manager = (Wifip2pManager) Context.getSystemService(WIFI_P2P_SERVICE)
Bluetooth Medical● android.bluetooth.BluetoothHealth
FORMATION Communication
GridLayout● Hérite de ViewGroup● Permet d'organiser ses vues sur une grille● Objet Space pour insérer des espaces vides
FORMATION GridLayout
Switch● Peut remplacer un CheckBox● Existe aussi pour les préférences :
SwitchPreference
ActionBar● Peut contenir logo, menus, onglets, champs
de recherche...● Se sépare en deux sur les petits écrans
PopupMenu
FORMATION IHM Honeycomb
ActionProvider● Menu dynamique en fonction des applications
disponibles● Exemple : ShareActionProvider
Modes d'affichage des boutons HOME/BACK/MENU
● View.setSystemUiVisibility prend en paramètre○ SYSTEM_UI_FLAG_VISIBLE○ SYSTEM_UI_FLAG_LOW_PROFILE○ SYSTEM_UI_FLAG_HIDE_NAVIGATION
FORMATION IHM
API Caméra● Détection de visages
○ Camera.startFaceDetection()○ Camera.FaceDetectionListener
● Réglage du focus :○ avec Camera.Area○ Mode FOCUS_MODE_CONTINUOUS_PICTURE
● Prise de photos en mode caméra avec takePicture()● Verrouillage des paramètres
○ setAutoExposureLock()○ setAutoWhiteBalanceLock()
● Orientation dynamique avec setDisplayOrientation()
FORMATION Autres nouveautés
Gestion des entrées● Gestion des évènements de type "hover"
○ View.OnHoverListener○ Type d'évènements avec getAction()
■ MotionEvent.ACTION_HOVER_ENTER■ MotionEvent.ACTION_HOVER_EXIT■ MotionEvent.ACTION_HOVER_MOVE
● Types de pointeur avec getToolType()○ MotionEvent.TOOL_TYPE_UNKNOWN○ MotionEvent.TOOL_TYPE_FINGER○ MotionEvent.TOOL_TYPE_MOUSE○ MotionEvent.TOOL_TYPE_STYLUS○ MotionEvent.TOOL_TYPE_ERASER
● Boutons de souris avec getButtonState()○ MotionEvent.BUTTON_PRIMARY○ MotionEvent.BUTTON_SECONDARY○ MotionEvent.BUTTON_TERTIARY○ MotionEvent.BUTTON_BACK○ MotionEvent.BUTTON_FORWARD
● Axe du stylet avec getAxisValue()○ MotionEvent.AXIS_DISTANCE○ MotionEvent.AXIS_TILT○ MotionEvent.AXIS_ORIENTATION
FORMATION Autres nouveautés
Contrôle des applications multimédia● Communication simplifiée et unifiée entre applications multimédia
○ Prise de contrôle des applications multimédia depuis un widget, etc...○ Affichage des informations de lecture
● android.media.RemoteControlClient Accessibilité
● Description vocale des éléments avec le champ android:contentDescription● Refonte de l'API, nouvelles classes :
○ AccessibilityRecord○ AccessibilityNodeInfo
● Nouvelles méthodes de la classe View :○ onInitializeAccessibilityEvent○ onInitializeAccessibilityNodeInfo○ setAccessibilityDelegate
● Délégation de l'accessibilité via la classe View.AccessibilityDelegate
FORMATION Autres nouveautés
Services de correction orthographique● Possibilité de créer ses propres services de correction orthographique
○ A partir de la classe SpellCheckerService○ Avec la permission BIND_TEXT_SERVICE
Services Text-to-speech
● Développement de services TTS en dérivant TextToSpeechService● Refonte de l'API
○ Nouvelles classes TextToSpeech.EngineInfo et SynthesisRequest○ Récupération des moteurs avec TextToSpeech.getEngines()
● Nouvelle classe à partir de l'API level 15 : UtteranceProgressListener
FORMATION Autres nouveautés
Gestion du VPN● Nouvelle classe android.net.VpnService● Nouvelle permission BIND_VPN_SERVICE● Plusieurs sécurités pour l'établissement d'un VPN :
○ Acceptation explicite de l'utilisateur○ Limitation à une seule connexion○ Présence d'une notification○ Boîte de dialogue système pour contrôler le VPN
Gestion des certificats
● Nouvelle classe KeyChain○ Accès aux clés privées et aux certificats associés
FORMATION Autres nouveautés
Divers● Support des flux audio et vidéo par la classe MediaPlayer (permission INTERNET
requise), et de nouveaux codecs● Possibilité de déclarer une activité pour les paramètres réseau en filtrant l'intent
ACTION_MANAGE_NETWORK_USAGE● Nouveautés dans l'API RenderScript● Possibilité d'interdire l'utilisation de la caméra avec la méthode DevicePolicyManager.
setCameraDisabled() et la propriété USE_POLICY_DISABLE_CAMERA● Gestion des capteurs de température et d'humidité avec les types
TYPE_AMBIENT_TEMPERATURE et TYPE_RELATIVE_HUMIDITY● Bibliothèque d'effets OpenGL avec EffectFactory● Widget TextureView pour l'affichage d'objets OpenGL au sein d'un layout● Amélioration de JNI
Autres nouveautés Honeycomb
● Fragments● Presse papier● Drag'n'drop● Gestion des périphériques USB● Gestion des protocoles MTP et RTP
FORMATION Autres nouveautés
Questions ?
FORMATION Conclusion