2012-02-20 17 views
12

¿Cómo podemos conectar algunos datos adicionales para un evento del calendario como archivos, fotos, un simple cadena, etc ..Cómo atacan datos privados a un evento del calendario androide

he usado propiedades ampliado y capaz de insertar algunos datos adicionales a través propiedades extendidas

Uri extendedProperties=Uri.parse("content://com.android.calendar/extendedproperties"); 
ContentValues extendedValues=new ContentValues(); 
extendedValues.put("event_id", id); 
extendedValues.put("name",key); 
extendedValues.put("value",value); 
getApplicationContext().getContentResolver().insert(extendedProperties, extendedValues); 

y más tarde capaz de recuperar esos datos, como a continuación

Uri extentdedProperties=Uri.parse("content://com.android.calendar/extendedproperties"); 
CursorextendedPropertires Cursor=getContentResolver().query(extentdedProperties,null,"event_id = "+Id +",null,null); 

funciona bien con Android 2.2 ... lo mismo código si prueban en Android 4.0 (cr hielo eam sandwich). Se está cometiendo un error al decir que solo los adaptadores de sincronización pueden acceder al contenido: //com.android.calendar/extendedproperties.

Así que ejecuté la consulta como "callerissyncadapter". Ahora puedo insertar propiedades extendidas. Pero una vez que el evento se sincroniza con el servidor, el servidor borra las propiedades extendidas.

Incluso estas propiedades extendidas no son totalmente compatibles con los proveedores de calendario (que no sea Google)

¿Hay alguna manera de unir algunos datos adicionales al calendario de eventos que no sea ExtendedProperties o podemos hacer uso de estas propiedades extendidas en una mejor forma.

Respuesta

0

No use callerissyncadapter a menos que realmente sea el adaptador de sincronización. Establecer esto en verdadero hará que los observadores de contenido en el dispositivo no sean notificados de los cambios en el contenido en ese proveedor y de que sus cambios no se mantengan en el servidor.

¿Por qué estás tratando de hacer esto? ¿Está tratando de asociar algunos datos para su aplicación con un evento de calendario?

Si es así, ¿por qué no crear su propia tienda de datos privada (o proveedor de contenido) con su aplicación e indexar sus propiedades adicionales por la clave de los eventos en el proveedor de contenido de calendario? De esta forma, tienes una asociación entre los datos de tu aplicación y los datos del proveedor de contenido de contactos públicos.

+0

No hay una manera confiable de mantener la clave de un evento en una tienda privada. Tanto el _id como _sync_id de un evento pueden cambiar si elimina y vuelve a agregar la cuenta del evento, p. Cuenta tipo Exchange. – OferR

Cuestiones relacionadas