Где находится класс SampleZipfileProvider?

Внизу раздела в руководстве разработчика Google по файлам расширения ( http://developer.android.com/guide/market/expansion-files.html) есть следующий текст.

APEZProvider - большинству приложений не нужно использовать этот класс. Этот класс определяет ContentProvider, который выполняет маршализацию данных из ZIP-файлов через Uri провайдера контента, чтобы обеспечить доступ к файлам для определенных API-интерфейсов Android, которые ожидают Uri-доступ к медиа-файлам. Пример приложения, доступного в пакете расширения Apk, демонстрирует сценарий, в котором этот класс полезен для указания видео с помощью VideoView.setVideoURI(). Посмотрите класс примера приложения SampleZipfileProvider для примера того, как расширить этот класс для использования в вашем приложении.

Рассматриваемый образец приложения не содержит этот класс. Но он содержит ссылку на файл.SampleVideoPlayerActivity в AndroidManifest.xml, который также отсутствует в проекте.

Кто-нибудь пытался реализовать конкретный класс на основе APEZProvider и использовал его с VideoView.setVideoURI()?

Я реализовал класс:

public class ZipFileContentProvider extends APEZProvider {

    @Override
    public String getAuthority() {
        return "com.myCompany.myAppName.provider.ZipFileContentProvider";
    }
}

Но я не знаю, как использовать его с VideoView.setVideoURI() вызов. Кто-нибудь может помочь?

1 ответ

Решение

Оказалось, что моего ZipFileContentProvider было достаточно. Для тех, кто сталкивался с этой проблемой. Вот что я сделал, чтобы использовать контент-провайдер для метода VideoView.setVideoURI().

Добавить провайдера в манифест.

<provider android:authorities="com.myCompany.myAppName.provider.ZipFileContentProvider" android:name=".ZipFileContentProvider"></provider>

В классе видеоплееров:

final String AUTHORITY = "com.myCompany.myAppName.provider.ZipFileContentProvider";
final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY);
video = (VideoView) findViewById(R.id.video);
video.setVideoURI(Uri.parse(CONTENT_URI + "/" + videoFileName + ".mp4"));
Другие вопросы по тегам