Обертывание / разворачивание курсора в ContentProvider

Я создаю ContentProvider, который является прокси другого 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;
     }
    }

После вызова внутреннего CP из моего CP я получил неожиданное исключение:

java.lang.UnsupportedOperationException: Only CrossProcessCursor cursors are supported across process for now

Исключение касается обертывания курсора CP и его переноса. Внешний CP не может обернуть его снова, поэтому у меня здесь проблема. Когда я проверил класс возвращаемого курсора, я получил CursorWrapperInner.

Есть ли способ развернуть курсор (из этого CWI в обычный Cursor) во внешнем CP (но не путем передачи всех данных в MatrixCursor в цикле - это слишком много времени).

18
задан double-beep 30 April 2019 в 18:09
поделиться