Да, это возможно. Но вам нужен ContentProvider. Хотя ContentProvider обычно поддерживается некоторой базой данных sql, это не является обязательным требованием. Вы можете получить данные в методе query () ContentProvider из любого источника, при условии, что вы возвращаете их как курсор. Если у вас нет курсора базы данных, вы можете вместо этого обернуть свои данные в MatrixCursor и вернуть MatrixCursor.
У меня есть такая реализация метода query (), и он работает, возвращая MatrixCursor.
Распространенным заблуждением является то, что ContentProvider должен быть поддержан запросами из базы данных.
Лучше понимать ContentProvider как контракт, который определяет 4 различных (CRUD) метода, которые принимают определенные типы аргументов и возвращают определенные типы.
Кроме того, вы можете иметь разные запросы внутри этих 4 методов и переключать их в зависимости от Uri.
При таком использовании ContentProviders может использовать любой источник данных и выполнять любые операции с этим источником данных, если вы придерживаетесь контракта, указанного классом ContentProvider. Это делает их чрезвычайно сильными.