2017-09-25 2 views
-1

J'essaie d'ajouter des événements dans mon application en utilisant un calender.Selon CalenderContract, je dois fournir un ID constant chaque fois que j'ajoute un événement au calendrier. Je ne sais pas comment faire cela.Comment obtenir le CALENDAR_ID par défaut dans Android?

J'ai essayé d'utiliser calender_ID =1 qui a fonctionné sur certains périphériques et calender_ID = 3 qui a également travaillé sur certains périphériques.

Je pense qu'il y aurait un ID par défaut qui peut être utilisé pour que cela fonctionne correctement.

Quelqu'un peut-il me dire comment cela peut-il être fait?

Merci à l'avance.

Répondre

0

vous pouvez obtenir l'identifiant de calendrier par ce code suivant:

String projection[] = {"_id", "calendar_displayName"}; 
    Uri calendars; 
    calendars = Uri.parse("content://com.android.calendar/calendars"); 

    ContentResolver contentResolver = c.getContentResolver(); 
    Cursor managedCursor = contentResolver.query(calendars, projection, null, null, null); 

    if (managedCursor.moveToFirst()){ 
     m_calendars = new MyCalendar[managedCursor.getCount()]; 
     String calName; 
     String calID; 
     int cont= 0; 
     int nameCol = managedCursor.getColumnIndex(projection[1]); 
     int idCol = managedCursor.getColumnIndex(projection[0]); 
     do { 
      calName = managedCursor.getString(nameCol); 
      calID = managedCursor.getString(idCol); 
      m_calendars[cont] = new MyCalendar(calName, calID); 
      cont++; 
     } while(managedCursor.moveToNext()); 
     managedCursor.close(); 
    } 

vous pouvez donc obtenir le calendrier Id lors de l'exécution et de l'utiliser. vous n'avez pas besoin d'un identifiant 1 ou 3 colonnes codé en dur.

+0

pouvez-vous me dire ce qu'est MyCalendar []? @chandrakant – droidman

+0

ma méthode prendra le type de retour du calendrier thatswhy j'ai pris cela mais vous n'avez pas besoin que je modifie mon code pour vous –