SampleZipfileProvider类在哪里?

时间:2012-03-08 19:05:52

标签: android android-contentprovider

在Google的扩展文件开发指南(http://developer.android.com/guide/market/expansion-files.html#ZipLib)部分的底部,有以下文字。

  

APEZProvider - 大多数应用程序不需要使用此类。这个   class定义了一个ContentProvider,它从ZIP中封送数据   文件通过内容提供商Uri提供文件访问权限   对于某些期望Uri访问媒体文件的Android API。该   Apk扩展包中提供的示例应用程序演示   此类可用于指定视频的场景   VideoView.setVideoURI()。查看示例应用程序的类   SampleZipfileProvider是一个如何将此类扩展到的示例   在你的申请中使用。

有问题的示例应用程序不包含此类。但它确实包含对AndroidManifest.xml中.SampleVideoPlayerActivity文件的引用,该文件在项目中也不存在。

是否有人尝试根据APEZProvider实施具体类并将其与VideoView.setVideoURI()一起使用?

我已经实现了这个类:

public class ZipFileContentProvider extends APEZProvider {

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

但我不知道如何在VideoView.setVideoURI()电话中使用它。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:27)

事实证明我的ZipFileContentProvider足够了。对于遇到这个问题的人。以下是我使用VideoView.setVideoURI()方法的内容提供程序所做的工作。

将提供程序添加到Manifest。

<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"));