Escribir información en un ContentProvider

Añadir un nuevo elemento en un ContentProvider resulta muy sencillo. Para ilustrar como se hace escribe el siguiente código al principio del ejemplo anterior:

  ContentValues valores = new ContentValues();

             valores.put(Calls.DATE, new Date().getTime() );

             valores.put(Calls.NUMBER, "555555555");

             valores.put(Calls.DURATION, "55");

             valores.put(Calls.TYPE, Calls.INCOMING_TYPE);

             Uri nuevoElemento = getContentResolver().insert(

                                                                                Calls.CONTENT_URI, valores);

Como puedes ver comenzamos creando un objeto ContentValues donde vamos almacenado una serie de pares de valores, nombre de columna y valor asociado a la columna. A continuación, se llama a getContentResolver().insert()  pasándole la URI del ContentProvider y los valores a insertar. Este método nos devuelve una URI que apunta de forma específica al elemento que acabamos de insertar. Podrías utilizar esta URI para hacer una consulta y obtener un cursor al nuevo elemento y así poder modificarlo, borrarlo u obtener el _ID. Recuerda que has de pedir el permiso WRITE_CALL_LOG.

Si ejecutas ahora el programa, la nueva llamada insertada ha de aparecer en primer lugar.

Estamos modificando el registro de llamadas del sistema, por lo tanto, también puedes verificar esta información desde las aplicaciones del sistema.