Android News

Aller au contenu | Aller au menu | Aller à la recherche

samedi 10 octobre 2009

De nouveaux Android arrivent

Je viens de recevoir ce message de la part de l’équipe Android Market :

Hello,
We're writing to inform you about a couple changes to Android Market that require your attention.
First, we have added the ability to target applications by carrier in all countries.  For example, if you are showing your app in the United States, you can now choose among Sprint, T-Mobile, and Verizon Wireless.  If your apps are intended for users of specific carriers, please go to the Android Market developer website at http://market.android.com/publish (in the Publishing Options section under Locations) and target your applications to those carriers accordingly.
Second, Android Market will soon be available on devices with different screen sizes.  Until now, Android devices have only had "normal"-sized screens, e.g., HVGA (320x480).  The latest platform release, Android 1.6, expands support for upcoming devices that cover three different screen sizes:  small, normal, and large.  Please note that Android Market will allow apps built with the Android 1.5 SDK (or lower) to show only on normal- and large-screened devices.  Android Market will allow apps built with the Android 1.6 SDK to show on all three screen sizes.  Therefore, you will need to upgrade your app to Android 1.6 if you want it to also show on small screen devices that will launch in the coming weeks.  For complete details on Android's support for different screen sizes and the implications for your apps, we strongly recommend that you read the Android Developers Blogpost at http://android-developers.blogspot.com/2009/10/support-for-additional-screen.html.
Thanks, and we look forward to continue working with you on Android
Market.
Sincerely,

The Android Market Team

lundi 25 mai 2009

Utilisation de XStream sous Android

XStream est une bibliothèque Java qui permet de sérialiser et de désérialiser des objets en s’appuyant sur la réflexion et des Converters pour la plupart des types de base (Float, Integer, Collections, ...). La dernière version (1.3.1) fonctionne plutôt bien sous Android.
Il est possible de paramètrer la sérialisation afin d’adapter une classe Java à un format XML particulier et aussi d’éviter d’avoir le nom complet (avec le package) de la classe dans le XML de sortie. Pour cela, Xstream dispose d’annotations et des méthodes correspondantes dans XStream pour les version de Java antérieures à JavaSE 5.
Exemple avec les annotations :
  1. @XStreamAlias("person")
  2. public class Person implements Serializable {
  3.  
  4.     private String name;
  5.     private String firstname;
  6.  
  7.     @XStreamImplicit(itemFieldName="email")
  8.     private List<Email> emails;
  9.  
  10.     @XStreamImplicit(itemFieldName="tel")
  11.     private List<Tel> tels;
  12.  
  13.     public Person() {
  14.     }
  15.     // utiliser xstream.processAnnotations(Person.class);
  16. }
Et l’équivalent avec les méthodes de XStream :
  1. xstream.alias("person", Person.class);
  2. xstream.addImplicitCollection(Person.class, "emails", "email", Email.class);
  3. xstream.addImplicitCollection(Person.class, "tels", "tel", Tel.class);
Et le résultat de la sérialisation d’un objet Person :
Au niveau des limitations, la plateforme Android ne supporte pas les parseurs StAX et par conséquent le Driver JettisonMappedXmlDriver qui permet de sérialiser/désérialiser en JSON. De plus, XStream s’appuie sur la variable «java.specification.version» afin de déterminer la version de Java : Android fixe cette variable à 0.9, ce qui désactive la gestion des annotations Xstream.
Toutefois, il est possible d’étendre la classe XStream et de redéfinir la méthode qui crée les classes de mapping afin de pouvoir utiliser les annotations Xstream. Il s’agit de la classe AndroidXStream dans l’archive zip associée à ce billet.
L’analyse des annotations est beaucoup plus lente que les méthodes de la classe XStream mais ces dernières rendent le code plus difficile à maintenir à mon goût.
Il est également possible d’utiliser le Driver JsonHierarchicalStreamDriver afin de sérialiser un objet en JSON, par contre la désérialisation n’est pas supportée. Il faudra alors utiliser les classes du package org.json (déjà présent dans l’API Android).
XStream se révèle particulièrement utile avec les Web Services qui utilisent des formats assez complexes. Pour persister des données en local les classes ObjectOutputStream et ObjectInputStream seront plus efficaces.
Vous trouverez un projet d’exemple dans cette archive : XstreamDemo.zip

vendredi 15 mai 2009

Android Captcha : Réutiliser un composant Google

L'interface de base d'Android possède de nombreux gadgets qui s'avèrent très intéressants. Cependant, tous ne sont pas visibles publiquement dans la librairie, mais Android étant un projet open source, et les sources étant accessibles, il est donc tout à fait possible d'aller les récupérer pour les adapter.

Lire la suite...

jeudi 7 mai 2009

Android Cupcake 1.5 : Réaliser son widget

Bonjour, depuis la sortie du dernier framework, une nouvelle possibilité réclamée depuis longtemps est apparue : la possibilité de faire vos propres widgets et de les ajouter sur votre home. Nous allons voir dans les grandes lignes ce qu'il faut faire, les limitations, et vous retrouverez en pièce jointe un widget HelloWorld déjà fait.


Lire la suite...

mercredi 6 mai 2009

Tutorial : Les dossiers dynamiques ou Live Folder

Un dossier dynamique est un raccourci sur le bureau qui affiche une liste ou une grille avec des informations dynamiques qui viennent d’une application. Cela peut être les derniers contacts appelés, les derniers favoris, etc …

Nous allons voir comment créer ces dossiers pour afficher nos derniers SMS. Pour cela, on va utiliser l’astuce décrite dans un précédent billet pour accèder aux SMS de l’application.

 

livefoldersms

Lire la suite...

mercredi 29 avril 2009

Android Cupcake : comment flasher le Dev Phone

Il existe depuis peu une version officielle de l’image système de Cupcake pour les HTC Dev Phone. La procédure de mise à jour est rapide, sans risque de blocage non récupérable et en plus conserve les applications que vous avez déjà installées ainsi que leurs données.
Sachez aussi que cette procédure est réversible.
Vous aurez besoin de deux archives zip à télécharger sur le site de HTC : http://www.htc.com/www/support/android/adp.html
  • ota-radio-2_22_19_26I.zip (Radio Image Android 1.5)
  • signed-dream_devphone-ota-147201.zip (Recovery Image 1.5)
La première étape est de mettre à jour le firmware radio :
  • Assurez-vous que la SDCard est bien connectée au téléphone, transférez la première archive (ota-radio-2_22_19_26I.zip) vers la SDCard et renommez-la en update.zip, voilà comment faire en ligne de commande : 
    • <ANDROID_SDK>\tools\adb -d push ota-radio-2_22_19_26I.zip /sdcard/update.zip
    • <ANDROID_SDK>\tools\adb -d shell sync
  • Arrêtez le téléphone, puis démarrez-le en mode recovery en maintenant appuyé la touche Home.
  • Vous devriez avoir un écran à fond noir avec une icône contenant un point d’exclamation, effectuez la combinaison de touches ALT+L pour faire apparaître les options :
  • Vous pouvez ignorer l’erreur "Can’t open ...". Faites ALT+S, le firmware se met alors à jour. une fois la mise à jour terminée, redémarrez le téléphone avec Home+Back.
  • Le système n’est alors toujours pas mis à jour. Transférez la deuxième archive (signed-dream_devphone-ota-147201.zip) de la même façon que la première (vers /sdcard/update.zip), redémarrez le téléphone en mode recovery, ALT+L, ALT+S, puis Home+Back une fois la mise à jour terminée.
  • Le téléphone redémarre plusieurs fois, patientez un peu et vous aurez alors le nouveau système Android 1.5 (Cupcake).

Pour plus de détails sur les mises à jour, il existe un Google Groups dédié : http://groups.google.com/group/Android-DevPhone-Updating

lundi 27 avril 2009

Tutorial : Manipuler les contacts - STEP 1 : READ



Voir, Modifier, Supprimer des contacts ! En Ajouter des nouveaux ! En importer dans votre application, en exporter depuis celle-ci... C'est ce que nous allons voir ici ! Au final on obtiendra quelque chose comme ça : screen2 Le nom, le numéro, et la photo de chacun de vos contacts. Pour cette première partie, on commencera par "LIRE" les contacts.

Lire la suite...

jeudi 23 avril 2009

ZXing : Comment tester le scan de code QR sur l’émulateur

La semaine dernière (Tutorial : Scanner et générer des codes QR (2D) sur Android), nous avons vu comment faire appel à l’application Barcode Scanner afin de décoder un code QR. Barcode Scanner ne propose que l’appareil photo pour la capture de l’image du code, ce qui le rend inutilisable sur l’émulateur.

Il est possible en utilisant JMF et une connection TCP/IP émulateur/hôte de simuler l’appareil photo avec la Webcam (expliqué ici) mais cela n’est pas pratique pour nos besoins.

La solution retenue est de créer une nouvelle activité de scan qui prend en paramètre une image présente sur la sdcard. Pour ce faire, il vous faudra :

  • Créer une image de sdcard et la monter dans l’émulateur (expliqué ici) ;
  • Charger des images de codes QR (format png ou jpeg) sur cette sdcard (voir lien précédent) ;
  • Créer une IntentFilter qui aura la même action que l’activité de scan de ZXing :
  1. <activity android:name="ScanFileActivity">
  2.   <intent-filter>
  3.     <action android:name="com.google.zxing.client.android.SCAN" />
  4.     <category android:name="android.intent.category.DEFAULT" />
  5.   </intent-filter>
  6. </activity>

Ainsi, lorsqu’une Intent avec cette action sera soumise, le système Android proposera une liste déroulante des applications capables de les traiter.

  • Ensuite il faut créer la classe de l’activité ScanFileActivity. L’écran de cette activité affichera une liste des images présentes sur la SDCard et lorsque l’une d’entre elles sera choisie, un objet QRcodeReader est instancié dans un thread avec les données de l’image en paramètre. Cette classe de la bibliothèque ZXing prend en paramètre un objet MonochromeBitmapSource adapté à la classe Bitmap d’Android via la classe RGBMonochromeBitmapSource
  • La classe ScanFileActivity renvoie un résultat en respectant le même format que CaptureActivity (classe de Barcode Scanner). Du coup, il n’y aucun changement à faire sur l’activité principale écrite lors du précédent article.
Cette nouvelle activité n’étant pas utile sur un vrai téléphone, il faudra alors commenter sa déclaration dans le fichier AndroidManifest.xml ou l’isoler dans une application à part.
En conclusion, ce billet montre une fois de plus la force des Intent dans la plateforme Android.
Vous trouverez les sources des fichiers mentionnés dans cet article ici : http://code.google.com/p/zxing/source/checkout

mercredi 22 avril 2009

HiveLayout et Android 3 : La Cellule (et les sources).

Après le HiveLayout vu précédemment, il nous manque toujours des HiveCells à ajouter pour obtenir notre affichage complet. Il s'agit ici de trouver un moyen efficace de dessiner l'Hexagone et de gérer les clics à l'intérieur de sa zone, et d'ajouter du contenu à l'intérieur de l'Hexagone. Et surtout, c'est l'occasion de vous donner des sources d'un projet qui met en œuvre l'aspect théorique :)


Lire la suite...

vendredi 17 avril 2009

Tutorial : Scanner et générer des codes QR (2D) sur Android

startVous avez une idée d’application s’appuyant sur les codes QR ? ZXing vous permettra de la réaliser (presque) sans effort !

En effet, l’une des principales forces d’Android est de pouvoir réutiliser des fonctionnalités déjà implémentées par des applications existantes. Le principe est de créer des objets Intent qui vont cibler l’application implémentant la fonction qui nous intéresse, éventuellement de lui passer des paramètres (méthode «putExtra») et de faire appel à l’activité capable de répondre à ce besoin en utilisant «startActivityForResult». Cette dernière renverra une réponse sous forme d’un objet Intent passé en paramètre à «onActivityResult». Je ne m’étenderai pas plus à ce sujet (plus d’infos ici: http://developer.android.com/guide/topics/fundamentals.html#actcomp).

Le projet ZXing (se prononce «Zebra Crossing») est un ensemble de bibliothèques et d’applications de lecture de code-barres visant un large spectre de plateformes : Java SE /Java ME, C++, C#, iPhone, Blackberry, … et bien sûr Android :).

L’ensemble du projet est à télécharger à cette adresse:

http://code.google.com/p/zxing/downloads/list

Lire la suite...

jeudi 16 avril 2009

Tutoriel: Comment utiliser une SDCard sur l'émulateur Android

Ce tutoriel permet d'utiliser une sdcard, ou plutôt la simuler sur un émulateur Android, utilisant le SDK Android 1.1 SDK r1 title.png

Lire la suite...

mercredi 15 avril 2009

Android : Création d'un HiveLayout, première étape

Comme promis, et comme nous sommes Mercredi, nous allons commencer à voir les bases nécessaires à la création du HiveLayout. Au menu : un peu de mathématiques (ne fuyez pas !), et un peu d'Android.


Lire la suite...

Utiliser le nouveau SDK 1.5 d'android avec Cupcake

Android vient de sortir la nouvelle version du SDK de développement d’application Android en pré-version. Ce SDK contient la dernière version d’Android nommé Cupcake. Cette pré-version est aussi accompagné d’une nouvelle version du plug-in pour eclipse. Nous allons voir dans cet article comment installer et utiliser ce nouveau SDK.

device

Lire la suite...

lundi 6 avril 2009

Tutorial : Accéder aux SMS du téléphone

Pour certaines applications, il peut être intéressant d’accéder aux SMS enregistrés sur le téléphone. D’après le SDK, on peut recevoir les SMS qui arrivent, mais il n’existe pas dans le SDK de moyens pour accéder aux SMS du téléphone. Pourquoi cela n’est-il pas possible ? Tous simplement parce que la gestion des SMS n’est pas faite par Android, mais par une application nommée “Messaging”. Et l’utilisateur peut très bien choisir de changer cette application pour en utiliser une autre qui pourra lui donner plus de fonctionnalités. Cependant le principe d’Android est l’ouverture et notamment permettre aux applications de devenir fournisseur de contenu tout en utilisant le contenu d’autres applications. C’est pour cela qu’il est possible d’accéder au contenu d’une application. L’application par défaut de gestion des SMS/MMS créee par google ne déroge pas à la règle. Cependant, cette action n’est pas documentée, il faut aller chercher dans le code source de l’application pour trouver les informations. Nous allons voir dans ce message comment accéder aux SMS de l’application Messaging.

 

Lire la suite...

jeudi 2 avril 2009

Tutorial : Créer son propre thème pour son application Android

Comment reconnait-on une application Android?
Vous me diriez sûrement par son thème graphique et l'aspect de ses composants.

vue1

Si comme moi vous ne supportez plus cette couleur orange sur ce fond noir ou les autres looks des widgets standards, suivez le guide.

Lire la suite...