2011-10-10 2 views
0

J'essaie d'accéder aux journaux d'appels via l'application Android. J'ai pris des données à travers l'application et mettre à jour la valeur de la base de données, mais après la mise à jour je ne peux pas obtenir les valeurs mises à jour dans la liste d'appels.comment mettre à jour les journaux d'appels via les applications Android

Code i essayé ci-dessous:

Uri allCalls = Uri.parse("content://call_log/calls"); 
    Cursor c = managedQuery(allCalls, null, null, null, null);  

    if (c.moveToFirst()) { 
    do{    
     String callType = ""; 
     switch (Integer.parseInt(c.getString(
      c.getColumnIndex(Calls.TYPE)))) 
     { 
       case 1: callType = "Incoming"; 
       break; 
       case 2: callType = "Outgoing"; 
       break; 
       case 3: callType = "Missed"; 
     } 


      } while (c.moveToNext()); 


    } 

    ContentValues values=new ContentValues(); 
    values.put("name", "Unknown"); 

    int k=getContentResolver().update(allCalls, values,null, null); 

Je suis la valeur entière pour k que le nombre de nombre de lignes mises à jour, mais dans la liste des appels i didnt obtiennent une valeur différente. Je peux insérer et supprimer les valeurs de la liste d'appels et quand je regarde dans la liste des appels, il affiche le résultat comme l'insertion d'une nouvelle ligne ou la suppression de l'existant Mais quand je mets à jour les valeurs je peux le mettre à jour à la suite de la requête de mise à jour lorsque je vérifie en cliquant sur liste callLog, la valeur de mise à jour reste pour une fraction de seconde, puis ancienne valeur affichant ...

Je ne sais pas où j'ai fait erreur ?? S'il vous plaît aidez-moi ...

+0

@deepa .. pourquoi ne pas ajouter un numéro trop ...? – ngesh

+0

Consultez ce poste: http://stackoverflow.com/questions/5635874/how-can-i-update-the-contents-of-an-entry-in-the-call-log – spatulamania

+0

@ ntc .. je suis mettre à jour le nom de la personne comme inconnue seule. Après la mise à jour lorsque je vérifie l'émulateur à la toute première fois, il affiche le nom mis à jour comme inconnu puis il apparaît comme le nom par défaut dans la liste des appels. Je ne sais pas si j'ai fait erreur .. que je dois commettre après la mise à jour des valeurs de DB? – deepa

Répondre

1

Voyant que cette question a plus d'un an, je ne sais pas si vous êtes toujours à la recherche d'une réponse à cette question. Je pensais que vous aimeriez connaître la réponse de toute façon.

Votre code est tout à fait correct, il met à jour l'enregistrement d'appel comme il est censé. Mais puisque vous changez juste le nom, il est peu probable qu'il reste. Le champ de nom dans les journaux d'appels est un nom en cache, comme indiqué dans le Android Documentation, et est probablement actualisé chaque fois que vous affichez les journaux.

Si vous changez simplement le nom, le nom associé au numéro sera actualisé à partir de la liste des contacts, et c'est pourquoi vous ne verrez pas le nom mis à jour dans les journaux. Ou, vous verrez le changement jusqu'à ce que la liste soit actualisée/mise à jour.

Questions connexes