Partager sur les réseaux sociaux  Facebook Twitter Google+ LinkedIn

67 Commentaires à “Tutoriel Android : Introduction aux Intents”

  1. yoyoz dit :

    Bonne explication,
    ceci dit, il aurait egalement été interessant d’avoir une ligne en + pour voir aussi les parametres que l’on peut passer avec intent.putExtra
    et la recuperation du coté de l’activity appelée.

  2. gudu dit :

    Autre tutoriel à signaler sur le blog de la ssii Oxiane : http://blog.oxiane.com/2009/07/25/introduction-a-android/
    Peu connu mais constructif et bien fait

  3. embensouda dit :

    Sujet: ,
    est ce que vous savez qu’elles sont APIs qui je peux utilisé pour faire une appli qui fait le trasfert ftp, Donwload, upload??
    Merci pour votre aide
    C urgent

  4. Cyril Mottier dit :

    Salut embensouda

    Ta question n’a véritablement rien à voir avec ce tutorial mais je pense pouvoir y répondre sans trop de problème. Je crois que rien n’ai directement prévu pour le ftp sous Android. Néanmoins, avec des packages tels que java.net, certaines RFC et surtout un peu de courage tout est possible (c’est Android !) ;)

  5. embensouda dit :

    dsl de le posté içi, je viens d’ouvri un sujet de discussion sur le forum.
    quand vous dites rien n’est prevu sur android!! comment ca se passe alor le transfert de data et telechargement sur android ???$
    vous pouvez me repondre sur le forum
    Merci pour ton aide

  6. sangorys dit :

    Bonjour,

    est-ce que quelqu’un veut bien me dire comment modifier Manifest.xml et quoi mettre dedans afin de faire marcher ce programme.

    D’ailleurs, pour moi, le manifest est vraiment la partie la plus obscure d’Android. Autrement dit, j’y comprends pas grand chose… :-)

  7. Cyril Mottier dit :

    @sangorys : explique un peu ton problème et on pourra peut être plus t’aider. Le projet fourni ici est normalement directement exécutable (avec Android 1.5 tout du moins).

  8. sangorys dit :

    Merci Cyril,

    il est dit : « N’oubliez pas d’inclure cette nouvelle Activity dans le fichier Manifest.xml pour qu’Android autorise son exécution ».

    Donc ma question est : Comment modifier Manifest.xml et quoi mettre dedans. Doit-on aussi déclarer les intents ?

  9. Cyril Mottier dit :

    Pour répondre à ta question, ce tutorial fait partie d’un suite de tutoriaux que j’ai rédigé. Il me semblait avoir déjà expliquer comment ajouter une Activity au AndroidManifest.xml

    Pour rappel ;) :

    l’AndroidManifest.xml c’est un clair LE fichier qui explique ce que ton application a le droit de faire (Permissions), ce qu’elle contient (Activity, Service, Content Provider, etc.) et plein de truc de ce genre. Ca fait un peu foure-tout mais c’est un fichier indispensable à une application Android.

    Dans ton cas, si tu regarde du coté du code source d’AndroidManifest.xml tu devrais simplement avoir un bloc du genre :

    Cela permet au système de savoir qu’il existe ce genre d’Activity qui peut être lancée.

    Bon courage :)

  10. embensouda dit :

    Bonjour,
    j’essye de faire la meme chose mais c’est avec l’API  » android.telphony.
    cad, a traver une application j’essye de lancer des appels telephonique, est ce que vous pouvez me donner un peu de details sur comment faire le transfert de numero de mon appli vers le dialer de android, ou quelle classe je peux appler pr demarer le dialer…
    merci pour votre aide

  11. Cyril Mottier dit :

    Salut embensouda

    Le principe est exactement le même : il te suffit d’utiliser l’action ACTION_DIAL. Lorsqu’on utilise cette action, on démarre le Dialer qui s’affiche « vide » si rien n’est passé par setData(URI) sinon il affiche l’URI.
    Un exemple : startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(« tel:0123456789″))); démarre le Dialer avec le numéro 0123456789

    Encore une fois, la documentation pour ce genre d’action est disponible dans android.content.Intent.

    Si je ne me trompe pas, il sera nécessaire que l’utilisateur valide l’appel. Si tu préfère que l’appel s’effectue de façon automatique utilise plutôt ACTION_CALL (sans oublier la persmission android.permission.CALL_PHONE).

    Bon courage :)

  12. embensouda dit :

    mille merci.
    mais je pense que je vais revenir vers toi pour plus de details, si ça t’embete pas bien sur :)

  13. Cyril Mottier dit :

    Je suis plus du genre « mettre les gens sur la bonne piste » … lorsqu’on programme sur Android, il faut vraiment savoir lire la documentation car c’est vraiment elle qui explique tout.
    Mon rôle dans l’affaire n’est donc pas de faire votre travail mais simplement de vulgariser cette grosse documentation que Google fourni :)

  14. embensouda dit :

    Cyril,
    j’ai essyer de refaire le tutorial mais j’ai une erreur au niveau de « @override »

    Multiple markers at this line
    – implements android.view.View.OnClickListener.onClick
    – The method onClick(View) of type EntryPoint must override a superclass

  15. Cyril Mottier dit :

    Supprime simplement le @Override : il doit normalement être utilisé lorsque tu redéfinis la méthode or dans ton cas c’est simplement une interface que tu définis.

  16. embensouda dit :

    c’est ce que j’ai fait mais je voulais comprendre pour quoi??
    Merci pour ton aide

  17. embensouda dit :

    Bonjour,
    pour le num de tel, je n’ai pas envies qu’il soit figé, pour cela, j’ai fais pareil de ce qui est pour l’adresse web, mais le prob, c’est que a chaque fois il compose un num aleatoire sur le dialer .
    voila le bout de code . Merci pour votre aide
    public void onClick(View view) {

    if (view == mImageButton) {
    final String toDial= »tel: »+ mEditText.getText();
    startActivity(new Intent(Intent.ACTION_CALL, Uri.parse(toDial)));
    }
    }

  18. sebastien dit :

    Bonjour,
    j’ai suivi ton tuto, et la j utilise le parametre ACTION_CALL et j’aimerai le stopper apres un certain temps.
    A -t il une fonction ou un parametre qui permet d’ arreter l’appel ou bout d’un temps T.?
    OU l’idée est de le placer dans un Thread?

    Merci de votre reponse.
    Seb.

  19. Cyril Mottier dit :

    Si j’ai bien compris, tu aimerais stopper l’appel? Ne penses tu pas que c’est à l’utilisateur de faire ce genre d’action? Si tu souhaite vraiment arrêter l’Activity .. ce qui me parait vraiment inaproprié, utilise : finishActivity (mais il faut avoir démarrer l’activité avec startActivityForResult je crois)

    • Geri dit :

      Oh no, spellcheck (which I don’t effing need to use anyhow, it never catches more than one or two spelling mistakes) has mutilated my handle from ‘Nickws’ to &#sa.6;New8’1Ple2se, people, don’t send any personal abuse the way of this ‘News’.

  20. sebastien dit :

    Bonjour Cyril,
    ce que je veux faire exactement :
    -lancer l’appel avec ACTION_CALL, apres une durrée T (que je ne sais pas comment faire pour la fixer) je veux arreté l’appel.
    le but c’est d’automatisé cette operation cad, avec un seul bouton je veux lancer l’appel et l’arreté apres un temps T, etc…
    Merci pour ton aide

  21. Cyril Mottier dit :

    Eh bien avec ce que je t’ai donné et l’aide d’un Handler.postDelayed() ça devrait être possible :p

  22. sebastien dit :

    Merci, je vais tester ca. :)

  23. sebastien dit :

    Bonjour Cyril,
    j’ai essyé ce que tu m’a expliqué,j’ai pas d’erreur, mais ca n’a pas l’air de marché.
    excuse moi, je suis debutant coté Android.
    voila le code que j’ai fais, si tu poura jeter un coup d’oil.

    Intent intent =new Intent(Intent.ACTION_CALL, Uri.parse(toDial));
    startActivityForResult(intent,-5);
    Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
    public void run(){}}, 1000);

    finishActivity (-5);
    }
    }

    }

  24. Remi dit :

    merci pour le tutorial. J’ai créé un projet androïd, et j’ai importé les fichiers du projet dont j’ai téléchargé les sources.

    Mais bizarrement,
    dans les deux classes java , j’ai une alerte sur la méthode onView et l’IDE eclipse me suggère d’enlever les annotations @Override.
    Quand j’enlève, ça fonctionne mais je ne comprends pas pourquoi j’ai cette alerte.
    merci.

  25. Cyril Mottier dit :

    C’est normal, cela dépend du JDK installé.

    La véritable méthode est normalement de ne pas mettre l’annotation @Override lorsque les méthodes sont en fait des définition de méthode d’interface. L’annotation @Override ne doit être utilisée que lors de redéfinition de méthodes de classe mère.

    Dans l’exemple, il faudrait enlever les annotations pour la méthode onClick(View v) :)

  26. Remi dit :

    merci Cyril, on le met seulement si on redéfinit la fonction si j’ai compris.
    Sinon question un peu HS, je suis content que ça a l’air de marcher sur l’émulateur , pour le mettre sur mon téléphone , as -tu écrit un article? je n’ai pas trouvé. merci.

  27. Cyril Mottier dit :

    Il suffit de brancher ton téléphone, mettre les drivers et faire « Run » … rien de plus simple :)

  28. Remi dit :

    Ok Cyril ca n’est pas si simple pour moi, c’est la première fois que je développe sur mobile.
    J’ai regardé sur la doc android :
    http://developer.android.com/guide/developing/device.html
    http://developer.android.com/sdk/win-usb.html#XPFreshInstall

    Je ne sais plus si j’avais installé les drivers mais maintenant je le plug à mon pc seulement pour le recharger et je n’ai pas de message d’alerte me proposant d’installant les drivers.

    A partir d’Eclipse:
    J’ai la possibilité de Run as :
    1) Android application
    2) Java Application …

    J’ai tenté de suivre la procédure du lien

    # Declare your application as « debuggable » in your Android Manifest.

    In Eclipse, you can do this from the Application tab when viewing the Manifest (on the right side, set Debuggable to true). Otherwise, in the AndroidManifest.xml file, add android:debuggable= »true » to the element.
    # Turn on « USB Debugging » on your device.

    On the device, go to the home screen, press MENU, select Applications > Development, then enable USB debugging.

    Dans Menu de mon téléphone Android, je ne vois pas « applications » mais tous les programmes et ensuite je ne vois pas Développement :( mais la liste des programmes que j’ai installé.
    Comment faire?
    merci de ton temps et réactivité.

  29. Remi dit :

    merci de m’aider .

  30. Remi dit :

    J’ai activé le mode usb debugging , j’ai installé les drivers.
    Maintenant je veux le lancer à partir d’Eclipse et je n’ai que les options :

    Run on Server => j’ai une erreur (aucune ressource ….)
    Android application
    ….

  31. André FABRE dit :

    Petite explication sur l’origine de la dénomination sand box
    Le bac à sable étant un lieu sûre, au périmètre circonscrit dans lequel on laisse jouer un enfant en toute sécurité.
    L’analogie avec un espace mémoire sécurisé dans lequel tourne une application en toute quietude est donc justifiée.

    Merci pour vos efforts

  32. Herc. dit :

    salut,

    tout d’abord merci pour tes tutoriaux, qui même s’ils ne sont pas assez exhaustifs pour le total débutant que je suis, ont le mérite d’exister et d’aider à avancer les débutants comme moi.

    « Il me semblait avoir déjà expliquer comment ajouter une Activity au AndroidManifest.xml »

    Pourrais-tu indiquer lequel stp, car j’en ai fait le tours sans le trouver. ;)

    Merci par avance.

    A+

  33. Cyril Mottier dit :

    @André FABRE : Merci pour la précision

    @Herc. : Je pense avoir été le plus précis possible dans ce tutorial. Cette partie fait suite à d’autres parties déjà disponible sur ce site et dans lequel j’aborde Android d’un point de vue totalement novice.

    Pour ajouter une nouvelle activité, il suffit simplement d’ajouter une ligne dans le manifest (dans la balise application) :

  34. Herc. dit :

    merci! pour ton aide, je vais tester cela de suite!

  35. Herc. dit :

    Salut,

    Tout d’abord merci encore pour ce tuto.

    Bon ça y est l’application fonctionne!!;) je sais que je suis débutant mais voici quelques suggestions de modifications que tu pourrais apporter à ton tuto:

    1-lorsque l’on crée un projet android sous eclipse on créé également la première activity ainsi qu’un xml dans le res/layout (entre autre).Il serai plus simple que dans ton code ces 2 éléments aient le même noms et indiquer que le nom de l’activity entrée doit être entry ou entrypoint , cela éviterai des erreurs que l’on doit corriger manuellement.et ça donnerai une certaine cohérence dans le sens ou la class entry.java a comme layout entry.xml.

    2-la 2eme activity créée GoogleSearch (et/ou class) génère des erreurs dans eclipse à cause des majuscules, peut-être qu’il faudrait l’écrire plutôt googlesearch.

    3-Indiquer qu’une image logo_google.png doit être présent dans le répertoire: workspace/ »nom de votre projet »/res/drawable »

    4-expliquer que pour créer une interface pour l’activity (ou la class) googlesearch il faille cliquer sur file>new android xml puis selectionner layout. (même si cette suggestion relève plus de l’utilisation d’éclipse que de ce tuto précisément).

    Voila je crois que c’est tout et encore merci pour ce tuto qui m’a aider et continuera encore certainement à m’aider.

    Herc.;)

  36. Cyril Mottier dit :

    @Herc :

    1 – Je trouve ta remarque cohérente mais je préfère encore faire un nommage du genre : EntryActivity.java qui utilise entry.xml

    2 – Le problème ne vient surement pas des majuscule qui sont largement autorisée en Java (et même fortement conseillées dans le nom d’une classe)

    3 – Oui .. sauf que ça me parait évident quand on a lu les tutoriaux précédents et qu’il y a le zip fournit ;)

    Merci pour le support ! Et bon courage pour la suite :)

  37. benni dit :

    Bonjour,

    je suis débutante en développement android, j’ai suivi tous vos tutos, et je voudrais savoir si vous pouviez m’aiguiller pour récupérer une image à partir d’une url et de l’afficher simplement…
    Merci

  38. nour dit :

    bonjour Mr Cyril ,
    je suis debutante en Android,j’ai besoin de savoir comment recuperer des donnees d’après une base et les afficher sur telephone.j’utilise l’eclipse.
    une autre question,parfois je lance l’emulateur alors qu’il m’affiche un message Désolé!fermeture soudaine de l’application,et l’execution se fait pas malgré il n’ya pas d’erreur dans le code.
    pour etre claire je suis entrain d’appliquer ce qui se trouve dans la formation de l’android mais le code ne marche pas s’il y a une possibilité de m’aider.merci

  39. Cyril Mottier dit :

    @nour : Lol pas besoin d’utiliser des « Mr » :D. Je suis juste « Cyril » ;). La question de récupérer des données d’une base est un peu trop large pour que j’y réponde. C’est un sujet qui demande pas mal d’explications : l’objet principal à étudier et le « ContentProvider »

    Pour l’erreur, il faut que tu regarde le LogCat (une vue d’Eclipse). Tu aura des informations précises sur l’Exception qui a déclenché l’affichage de la popup.

  40. nour dit :

    merci Cyril,
    mais vraiment j’ai besoin d’aide,je me suis bloquée et j’ai besoin d’avancer.je t’avais dit que je suis entrain d’appliquer tout se qui se trouve dans la formation en video de l’android normalment j’ai copié le meme code de la formation,mais ca marche pas.
    est ce que tu peux le verifier le code avec moi?

    ca c’est le Main
    package com.formation.sql;

    import android.app.ListActivity;
    import android.database.Cursor;
    import android.os.Bundle;
    import android.os.SystemClock;
    import android.view.ContextMenu;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.ContextMenu.ContextMenuInfo;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.ListView;
    import android.widget.SimpleCursorAdapter;
    import android.widget.Toast;

    public class Main extends ListActivity implements OnClickListener {
    /** Called when the activity is first created. */
    DBAdapter db;
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    /* getListView().setOnCreateContextMenuListener(this);*/
    ((Button)findViewById(android.R.id.button1)).setOnClickListener(this);
    db = new DBAdapter(this);
    db.open();
    //placer tt les elements de la BD dans ma listview
    DataBind();
    }

    @Override//creation menu principale
    public boolean onCreateOptionsMenu(Menu menu) {
    menu.add(0,100,0, »tout effacer »);
    return true;
    }

    @Override//selection d’un item de menu
    public boolean onOptionsItemSelected(MenuItem item) {
    switch(item.getItemId()){
    case 100:
    db.Truncate();
    DataBind();
    break;
    }
    return true;
    }
    protected void onListItemClick(ListView l,View v,int position,long id){
    Cursor cursor = (Cursor)l.getAdapter().getItem(position);
    String titre = cursor.getString(cursor.getColumnIndex(« titre »));
    Toast.makeText(this, »Item id »+id+ » : « +titre, Toast.LENGTH_SHORT).show();
    super.onListItemClick(l, v, position, id);
    }
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
    ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    menu.setHeaderTitle(« Action »);
    menu.add(0,100,0, »supprimer »);
    menu.add(0,200,1, »editer »);

    }

    @Override
    protected void onDestroy() {
    db.close();
    super.onDestroy();
    }
    public void DataBind(){
    Cursor c = db.recupererLaListeDesProduits();
    startManagingCursor(c);
    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
    R.layout.list_item,c,new String[]{« titre », »description », »codebarre »},
    new int[]{R.id.textTitre,R.id.TextDescription,R.id.TextCodeBarre});
    setListAdapter(adapter);
    }

    @Override
    public void onClick(View v) {
    long num =SystemClock.currentThreadTimeMillis();
    db.insererUnProduit(«  »+num, »Produit n° »+num, »Nouveau Produit »+ num);
    DataBind();
    }
    }

    et ca c’est le DBAdapter:
    package com.formation.sql;

    import android.content.ContentValues;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.widget.Toast;

    public class DBAdapter {
    //instance de databasehelper
    DatabaseHelper DBHelper;
    //instance de databasehelper
    Context context;
    //BD de type SQLITE
    SQLiteDatabase db;

    public DBAdapter (Context context){
    this.context = context;
    DBHelper = new DatabaseHelper(context);
    }

    public class DatabaseHelper extends SQLiteOpenHelper{
    Context context;
    public DatabaseHelper(Context context) {
    super(context, « produits », null, 1);
    this.context = context;

    }
    @Override
    public void onCreate(SQLiteDatabase db) {
    db.execSQL(« create table produits(_id integer primary key autoincrement, »
    + »codeBarre text not null, titre text not null, »
    + »description text not null »
    + »;) »);

    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    Toast.makeText(context, »Mise à jour de la Base de données version »+oldVersion+ »vers »+newVersion, Toast.LENGTH_SHORT).show();
    db.execSQL(« DROP TABLE IF EXISTS produits »);
    onCreate(db);
    }

    }

    public DBAdapter open(){
    db = DBHelper.getWritableDatabase();
    return this;
    }
    public void close(){
    db.close();
    }
    public void Truncate(){
    db.execSQL(« DELETE FROM produits »);
    }
    public long insererUnProduit(String codeBarre,String titre,String description){
    ContentValues values = new ContentValues();
    values.put(« codeBarre », codeBarre);
    values.put(« titre », titre);
    values.put(« description », description);
    return db.insert(« produits », null, values);
    }
    public boolean supprimerproduit(long id){

    return db.delete(« produits », »_id= »+id, null)>0;

    }

    public Cursor recupererLaListeDesProduits(){
    return db.query(« produits », new String[]{
    « _id »,
    « codeBarre »,
    « titre »,

    « description » }, null, null, null, null, null);
    }
    }

    /*public class DBAdapter {
    DatabaseHelper DBHelper;
    Context context;
    SQLiteDatabase db;

    public DBAdapter(Context context) {
    this.context =context;
    DBHelper = new DatabaseHelper(context);
    }
    public class DatabaseHelper extends SQLiteOpenHelper{

    Context context;

    public DatabaseHelper(Context context) {
    super(context, »produits » ,null,1);
    this.context= context ;

    }

    @Override
    public void onCreate(SQLiteDatabase arg0) {
    db.execSQL(« create table produits (_id integer primary key autoincrement, »
    + »codebarre text not null, titre text not null , »
    + »description text not null »
    + »); »);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    Toast.makeText(context, « Mise à jour de la Base de données version » +oldVersion + »vers »+newVersion,Toast.LENGTH_SHORT);
    //supprimer ttes les donnees a l’interieur
    db.execSQL(« DROP TABLT IF EXISTS produits »);
    onCreate(db);
    }

    /* public DBAdapter open(){
    //ouvrir la base de donnees pour inserer des donnees
    db = DBHelper.getWritableDatabase();
    return this ;
    }*/

    /* public void close(){
    db.close();
    }
    //effacer ttes les données de la base
    public void Truncate(){
    db.execSQL(« DELETE FROM produits »);
    }
    //inserer un produit
    public long insererUnproduit(String codeBarre,String titre ,String description){
    //apporter un baggage
    ContentValues values = new ContentValues();
    values.put(« codeBarre »,codeBarre);
    values.put(« titre », titre);
    values.put(« description », description);
    return db.insert(« produits », null, values);
    }

    public boolean supprimerProduit(long id){
    return db.delete(« produits », « id= »+id, null)>0;
    }

    //recuperer la liste des produits en creant un autr tableau
    public Cursor recupererLaListeDesProduits() {
    return db.query(« produits », new String[] {
    « _id »,
    « codeBarre »,
    « description » },null, null, null, null, null);
    }
    }
    }
    */

  41. nour dit :

    merci Cyril,
    mais vraiment j’ai besoin d’aide,je me suis bloquée et j’ai besoin d’avancer.je t’avais dit que je suis entrain d’appliquer tout se qui se trouve dans la formation en video de l’android normalment j’ai copié le meme code de la formation,mais ca marche pas.
    est ce que tu peux le verifier le code avec moi?

  42. Mathieu dit :

    Bonjour,

    J’ai télécharger le .zip pour suivre ce tuto mais je sais pas quoi en faire. J’ai essayé de créer un nouveau projet à partir de ce dossier donc eclipse remplit le project name par entrypoint et quand je clique sur finish il m’indique invalid project description.

  43. Mathieu dit :

    Alors j’ai avancé en commencant par créer un nouveau projet. Sinon j’ai terminé le tuto mais il me reste deux problèmes avant de pouvoir lancer l’application.
    1 – Comment exactement on autorise une activity dans le manifest ?

    2- J’ai deux erreurs : toutes les deux concernent R.layout. Il me marque R.layout.entry cannot be resolved et pareil pour R.layout.google

  44. Mathieu dit :

    J’ai réglé le pb pour le layout puisque j’avais pas crée entry.xml qui est vide nan ?
    Sinon pour le manifest j’ai autorisé les deux activity mais quand je lance l’émulateur il marque dans la console qu’entrypoint est bien installé mais rien ne se passe et il est pas dans les menus…

  45. Mathieu dit :

    ca marche pour moi

  46. Mathieu dit :

    Pourquoi est ce que mon application dans le menu du téléphone ou de l’émulateur a pour nom : res/layout/google.xml

  47. saad dit :

    Bonjour Mr Cyril.
    je suis debutante en Android et je veux savoir si il y a une façon de faire q’une application soit capable de capturer les requetes de navigateur(du WebKit).

    Merci

  48. Cyril Mottier dit :

    Je ne pense pas avoir compris la question et je doute que ce genre de question soit adapté au sujet traité dans ce tutorial :(. N’hésite pas à en dire plus ;)

  49. saad dit :

    Bonjour Mr Cyril
    Ce que je voulais dire, c’est s’ il existe une manière pour capturer a partir d’une nouvelle application le trafic get et post générer par le navigateur d’android. Ça serait comme une espèce de WebScarab pour android.

    Merci

  50. Cyril Mottier dit :

    @saad … Je ne suis pas à 100% sûr mais cela me parait impossible car ça serait un énorme trou de sécurité qui va à l’encontre du sandboxing.

  51. saad dit :

    Bonjour Mr Cyril
    L’objectif de l’application serait comme une espèce de filtre (comme un proxy), pour interdire par exemple l’accès a certains page web.

    Merci de toute façon et désolé pour l’ennuie.

  52. Panda dit :

    Il ne faut pas oublier d’implémenter la nouvelle activités dans le manifest.xml.
    Ca ne marche pas sinon

  53. ouattara dit :

    salut j’ai utiliser votre code qui gère les bases de donneés SQLite mais il ya des erreurs or j’ai tapé le code tel qu’il est pouvez vous m’aider svp

  54. Cyril Mottier dit :

    Je ne parle pas de SQLite ici :s

  55. Nico dit :

    Bonjour Cyril,

    J’ai actuellement un problème que je n’arrive pas à résoudre et qui se rapproche de ton tutorial. Dans mon cas, j’ai deux applications A et B totalement indépendantes (2 apk différents et qui vivent leurs vies de leurs côté). Cependant, je souhaiterai lancer l’appli B à partir de l’appli A (lors d’un click sur un bouton, mais peu importe).
    Dans mon appli A j’ai plusieurs activity que je lance avec le mécanisme que tu expliques. Mais comment lancer une activity qui ne se situe pas dans mon apk et qui n’est pas directement lié à Android (comme le dialer par exemple) ?
    J’ai essayé de créer une intent en donnant le nom de package de l’appli B mais il doit me manquer quelque chose dans le manifest je suppose et je ne trouve pas la syntaxe exacte ? Aurais-tu une idée sur la question ?

    Merci d’avance,

    Nico

  56. Cyril Mottier dit :

    Salut Nico,

    Je n’ai pas parlé de cette façon d’appeler une Activity car c’est tout simplement la même méthode que l’appel « implicite ». La seule différence c’est que les applications appelées sont les tiennes et ne sont pas celles du système. Pour comprendre comment créer tes propres action et category, je te conseille de regarder du coté de l’exemple NotePad qui explique parfaitement cette problématique : http://d.android.com/guide/topics/intents/intents-filters.html#npex.
    Bon courage

  57. Nico dit :

    Merci bien, j’ai fini par y arriver ! :)

    Il suffisait de rajouter un intent-filter dans l’appli B en l’occurence et de l’appeler dans l’appli A via un new Intent suivi d’un start activity. A tout hasard si ca intéresse des gens voici un petit exemple :

    Partie à ajouter dans le manifest de l’appli B :

    Code dans l’appli A :

    Intent intent = new Intent(« appliB.intent.action.Launch »);
    this.startActivity(intent);

    merci bien du coup de main

    Nico

  58. Nico dit :

    oups il manque un morceau :)

    le code du manifest est celui-ci :

  59. amine dit :

    merci bien Mr cyril ,j’ai besion d’ aide ,sur les apis android accelerometre et gyrometre merci d’avavnce.

  60. assadi85 dit :

    salut Mr cyril,je viens de participer dans un projet Android mais je ne sais pas quelle appareil je doit acheter pour tester mes codes,c’est très urgent et merci d’avance.

  61. Led dit :

    Mr. Mottier je suis débutant dans le développement sur androïde … ça a bien avancé jusqu’à les Intetnt… j’ai suivi tout vos étapes mais il reste qques ptit problèmes je crois qu’il s’agit juste d’une décalage de version. Voila exactement de quoi il s’agit :
    setContentView(R.layout.entry);    dans cette ligne le compilateur ne veux pas accepter l’attribut entry et voila l’erreur                          
    As of ADT 14, resource fields cannot be used as switch cases. Invoke this fix to get more information.
    veuillez Svp m’aider

  62. Led dit :

    Mr. Mottier … j’arrive enfin a régler ce problème, il me reste juste une petite erreur :
    No Launcher activity found! sachant que dans mon fichier AndroidManifest j’ai déjà inscrit ce code la  
               
               
            !!! alors c’est quo le problème

  63. Led dit :

    Enfin … :-D   j’arrive a régler tout les problèmes , le faite de les corriger tout seule me donne beaucoup d’appréciation pour moi même .. merci de ne pas avoir répondre :-p  Merci

  64. Loick 2 dit :

    Je n’arrive pas a changer de vue d’une simple page avec un bouton à une map même en suivant le tuto pouvez-vous m’aider ? 

  65. alexis dit :

    merci grâce à ces 2 lignes mon projet avance :)

Laisser un commentaire sur PGP