IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Ajouter un évènement dans le calendrier


Sujet :

Android

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 54
    Points : 33
    Points
    33
    Par défaut Ajouter un évènement dans le calendrier
    Bonjour,

    J'essayes depuis un moment d'ajouter un évènement dans le calendrier (enfin dans un calendrier disponible sur le terminal) et je n'y arrive pas. Le traitement ne mène à rien sur l'émulateur, et plante sur mon mobile.

    Remarque : sur l'émulateur j'ai installé un QuickCalendar.apk via ADB. Cependant, je ne sais pas s'il ne manque rien d'autre, en effet l'application me dit que le service n'est pas lancé.

    Dans le code ci-dessous, le curseur retourne systématiquement null :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    final ContentResolver cr = getApplicationContext().getContentResolver();
    Cursor cursor = cr.query(getCalendarUri(), null, null/*"selected=1"*/, null, null);
     
    if(cursor != null) {
       if(cursor.moveToFirst()) {
          final String[] calNames = new String[cursor.getCount()];
          final int[] calIds = new int[cursor.getCount()];
          for (int i = 0; i < calNames.length; i++) {
             calIds[i] = cursor.getInt(cursor.getColumnIndex("_id"));
             calNames[i] = cursor.getString(cursor.getColumnIndex("displayname"));
             cursor.moveToNext();
          }
       }
    }
    [...]
    J'utilise la fonction pour récupérer uri :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	public Uri getCalendarUri() {
    	    return android.os.Build.VERSION.SDK_INT <= 7 ?
    			Uri.parse("content://calendar/calendars"):
    			Uri.parse("content://com.android.calendar/calendars");
    	}
    PS : J'utilise le SDK 1.6 pour l'émulateur, mon mobile est en Android 2.1

  2. #2
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Pourrais tu nous poster le message d'erreur que tu as dans le logcat ?

    Merci .

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 54
    Points : 33
    Points
    33
    Par défaut
    Bien sur le message est le suivant :

    Message : Failed to find provider info for calendar
    Tag : ActivityThread

  4. #4
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Tu as une erreur lorsque tu récupère le Calendar


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Uri calendarUri;
    Uri eventUri;
    if (android.os.Build.VERSION.SDK_INT <= 7 )
    {
      //the old way
      calendarUri = Uri.parse("content://calendar/calendars"); 
      eventUri    = Uri.parse("content://calendar/events");
    }
    else
    {
     //the new way
     calendarUri = Uri.parse("content://com.android.calendar/calendars");
     eventUri    = Uri.parse("content://com.android.calendar/events");
    }

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 54
    Points : 33
    Points
    33
    Par défaut
    Je crois bien que mon code revient au même non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	public Uri getCalendarUri() {
    	    return android.os.Build.VERSION.SDK_INT <= 7 ?
    			Uri.parse("content://calendar/calendars"):
    			Uri.parse("content://com.android.calendar/calendars");
    	}
    Et de plus, j'ai testé les deux structures sans résultat. J'ai une erreur différente si j'utilise la nouvelle version : "Failed to find provinder info for com.android.calendar".

    Comme aucun des deux ne fonctionne j'ai testé sur mon propre mobile et la je plante. J'ai codé un toast avant et après le curseur et rien ne s'affiche.

    Une autre idée ?

  6. #6
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Il existe un lien intéressant .
    http://jimblackler.net/blog/?p=151

    j'ai testé sur mon propre mobile et la je plante
    Essayes de le débugger directement sur ton mobile , ça t' évitera d'avoir des problèmes avec l'emulateur .

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 54
    Points : 33
    Points
    33
    Par défaut
    Oui j'ai déjà vu cette page web, très intéressante d'ailleurs, et tu remarqueras que mon code est très proche du sien... et ça ne marche pas mieux. Je vais reprendre les tests à zéro.

    Quelqu'un a t'il déjà rencontré ce genre de problème ?

  8. #8
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    +1 avec Feanorin.

    Essaye principalement de débuguer sur ton mobile pour voir si tu as les mêmes messages d'erreurs.

Discussions similaires

  1. comment insérer un évênement dans un calendrier google ?
    Par clavier12AZQSWX dans le forum Général Python
    Réponses: 0
    Dernier message: 06/05/2013, 17h47
  2. Insérer un événement dans le calendrier avec > 2.1
    Par Sake_reflex dans le forum Android
    Réponses: 2
    Dernier message: 03/10/2011, 10h54
  3. Ajouter un événement dans le calendrier iPhone
    Par SebPolytech dans le forum Objective-C
    Réponses: 1
    Dernier message: 02/09/2011, 12h40
  4. Ajouter des évènements dans mon calendrier
    Par doncandid dans le forum Langage
    Réponses: 2
    Dernier message: 25/06/2011, 21h32
  5. Ajouter rendez-vous dans le calendrier
    Par dakota77 dans le forum Windev Mobile
    Réponses: 0
    Dernier message: 16/09/2010, 16h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo