2012-08-02 15 views
5

¿Cómo se puede borrar todo el historial de registro de llamadas en Android? Actualmente tengo este código que sólo puede borrar un registro de llamadas en particular¿Cómo borras el historial de tus registros de llamadas en android?

public void DeleteCallLogByNumber(String number) { 
    String queryString="NUMBER="+number; 
    this.getContentResolver().delete(CallLog.Calls.CONTENT_URI,queryString,null); 
    } 
} 
+1

No es ideal por lo que un comentario no es una respuesta, pero siempre se puede leer todas las entradas del registro de llamadas y eliminarlos de esta manera ... – Basic

+0

probar esto? @Rpc (description = "Elimina una entrada del registro de llamadas ") deleteAnEntryFromCallLog (número de secuencia) {public void tratar { Uri CALLLOG_URI = Uri.parse (" contenido: // call_log/llamadas"); mService.getContentResolver(). Delete (CALLLOG_URI, CallLog.Calls.NUMBER + "=?", New String [] {number}); } catch (Excepción e) { e.getMessage(); } } –

+0

@AlexanderWigmore que no funciona – dythe

Respuesta

7

Pude hacerlo con esto, aunque ha pasado un tiempo. No estoy seguro de si esto todavía funciona.

getContentResolver().delete(android.provider.CallLog.Calls.CONTENT_URI, null, null) ; 

EDIT: Tenga en cuenta que no estoy seguro de que los diseñadores de plataformas destinadas a aplicaciones sean capaces de eliminar el registro de llamadas See this dev blog post. Entonces, aunque técnicamente funciona, tome esto como una advertencia justa de que en cualquier momento puede cambiar y romper lo que está intentando construir.

2

No puede borrar todos con una sola llamada a la API.

Puede, sin embargo, eliminarlos uno a uno (como se menciona en los comentarios) al recorrerlos todos. Para hacer eso, querrás use a Cursor. Tenga en cuenta que ese enlace solo borra las llamadas de menos de 60 segundos, por lo que tendrá que modificar la creación de Cursor para eliminar todas las llamadas.

También tenga en cuenta: Para las API 11+, debe utilizar CursorLoader en lugar de managedQuery(...).

1

Prueba esto:

String queryString="DURATION >= 0"; 
this.getContentResolver().delete(android.provider.CallLog.Calls.CONTENT_URI, queryString, null); 
Cuestiones relacionadas