2011-09-30 6 views
0

Bonjour les gars, je suis face à un problème quand je lis le CallLog les valeurs du nombre sont 0 et quand je lis par exemple le nom cache son 2 voici mon code et je mets l'autorisationjournal d'appels Android lecture

  String[] fields = { 
    android.provider.CallLog.Calls.NUMBER, 
    android.provider.CallLog.Calls.TYPE, 
    android.provider.CallLog.Calls.CACHED_NAME, 
    android.provider.CallLog.Calls.CACHED_NUMBER_TYPE 
    }; 
String order = android.provider.CallLog.Calls.DATE + " DESC"; 

Cursor c = getContentResolver().query(
    android.provider.CallLog.Calls.CONTENT_URI, 
    fields, 
    null, 
    null, 
    order 
    ); 

if(c.moveToFirst()){ 


    do{ 

//the problem was here    //System.out.println(c.getColumnIndex(android.provider.CallLog.Calls.NUMBER)+" - - "); 

//the solution is :$ 
System.out.println(c.getString(c.getColumnIndex(android.provider.CallLog.Calls.NUMBER))+" - - "); 

    } while (c.moveToNext()); 

} 

et j'ai lu toutes les questions connexes sur stackoverflow j'ai tout compris, donc je garderai la question si quelqu'un face à ce que j'était décharge: S

Répondre

1

Dépend téléphone, pas non plus tous/toutes les colonnes sont Obligatoire d'être rempli. Jusqu'à transporteur/fabricant/quiconque d'autre veut écrire à la table. Mais oui, le correctif de la question le ferait

+0

Merci pour l'information je me sens endormi alors je devrais boire du café pour éviter cette erreur terrible: $ – Sedz

+1

Aussi, une chose que j'ai remarqué d'utiliser cette table qui peut être utile est que les nombres négatifs (-1 ou -2) dans la colonne des nombres signifient souvent qu'ils proviennent d'un numéro privé –

+0

Ce que j'essaye de faire est de calculer la durée d'appel sur le fournisseur spécifique comme le nombre commence par 001 entre deux dates être disponible sur tous les appareils Android avec différentes versions du système d'exploitation? – Sedz

Questions connexes