Estoy creando ContentProvider, que es un proxy de otro ContentProvider (para problemas de seguridad y para dar acceso a parte de la funcionalidad de la aplicación completa).Envoltura/Desempaquetado de Cursor en ContentProvider
public class GFContactsProvider extends ContactsProvider implements
DatabaseConstants {
private Context mContext;
private ContentResolver mContentResolver;
@Override
public boolean onCreate() {
mContext = getContext();
mContentResolver = mContext.getContentResolver();
}
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
Cursor result = mContentResolver.query(ContactsContract.getContactsURI(Long.parseLong(address.get(1))), null, null, null, ContactsContract.ContactColumns.SHOW_NAME);
return result;
}
}
Después de llamar CP interior de mi CP I recive excepción inesperada:
java.lang.UnsupportedOperationException: Only CrossProcessCursor cursors are supported across process for now
La excepción se refiere a la envoltura del cursor por la CP y la transferencia envuelto, Outer CP no puede envolver de nuevo así que tengo un problema aquí. Cuando revisé la clase del cursor devuelto, recibí CursorWrapperInner. ¿Hay alguna forma de desenrollar el cursor (de este CWI a Cursor normal) en mi CP externo (pero no transfiriendo todos los datos a MatrixCursor en bucle, es demasiado lento).