Android实现文件选择

一.FilePicker一个Android文件选择器

 https://blog.csdn.net/dodod2012/article/details/88868770

二.FileSelector文件选择器

https://www.jianshu.com/p/07918609f4c4

分别使用遍历文件夹的方式和查询 Androd MediaStore多媒体库资源
 

  • 1.使用遍历文件夹:
    优点
            可以实时拿到所要的数据
    缺点:
            效率相对比较低
     

  • 2.使用Android MediaStore:
    优点
            效率比较高
    缺点:
            在通过第三方app下载之后,如果该app没有同步多媒体库,需要自己手动去同步多媒体库才能获取到实时的数据

三. Android MediaStore(多媒体库)

MediaStore.Files存储了所有应用中共享的文件,包括图片、文件、视频、音乐等多媒体文件,包括非多媒体文件。

MediaStore类是安卓自带的android.provider.MediaStore包中的

 

1.MediaStore:   The Media provider contains meta data for all available media on both internal and external storage devices.

                      媒体提供程序包含内部所有可用媒体的元数据以及外部存储设备。

2.MediaStore:

The contract between the media provider and applications. Contains definitions for the supported URIs and columns.

The media provider provides an indexed collection of common media types, such as AudioVideo, and Images, from any attached storage devices. Each collection is organized based on the primary MIME type of the underlying content; for example, image/*content is indexed under Images. The Filescollection provides a broad view across all collections, and does not filter by MIME type.

媒体提供者和应用程序之间的契约。包含支持的uri和列的定义。

媒体提供程序提供来自任何附加存储设备的公共媒体类型(如音频、视频和图像)的索引集合。每个集合都基于底层内容的主要MIME类型进行组织;例如,图像/*内容是在图像下索引的。Filescollection提供了跨所有集合的广泛视图,并且不根据MIME类型进行筛选。

四.getContentResolver

final Cursor cursor = context.getContentResolver().query(
        MediaStore.Files.getContentUri("external"),//数据源
        DOC_PROJECTION,//查询类型
        selection,//查询条件
        selectionArgs,
        MediaStore.Files.FileColumns.DATE_ADDED + " DESC");
if (cursor != null) {
    fileEntities = getFiles(cursor);
    cursor.close();
}

在android中,我们的应用有的时候需要对外提供数据接口,可以有如下几种方法:1)AIDL 2)Broadcast 3)ContentProvider。

每个应用程序是可以实现数据共享的,对于每一个应用程序程序都拥有一个contentprovider实例进行存储,而contentresolver则是用于管理所有程序的contentprovider实例,通过contentrescolver可以获得数据,插入数据等……至于getcontentrescolver()就是获取实例。。

内容提供者 :

      https://www.cnblogs.com/zhujiabin/p/5710229.html

      https://www.2cto.com/kf/201805/745094.html

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值