Теперь я хочу добавить виджет для отображения пары строк из одной из таблиц, хранящихся в базе данных.
Я собираюсь предположить, что под "виджетом" вы действительно подразумеваете "виджет приложения".
Стоит ли рефакторинг кода прямого доступа к шаблону ContentProvider?
Вам не нужно делать это только потому, что вы пишете виджет приложения.
Есть ли способ использовать прямой доступ к базе данных из виджета?
Конечно, используя те же механизмы, которые вы используете в любом другом месте вашего приложения.
Есть ли способ иметь ContentProvider и прямой доступ к базе данных в одном приложении?
Да, хотя вы должны быть немного осторожны, чтобы убедиться, что вы используете один и тот же объект SQLiteDatabase
в обоих случаях, чтобы не сталкиваться с проблемами многопоточности.