首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

无法在所有操作系统版本上通过getContentResolver().query()获取新创建的视频文件

问题描述:无法在所有操作系统版本上通过getContentResolver().query()获取新创建的视频文件。

回答: 这个问题可能是由于操作系统版本的差异导致的。在某些操作系统版本上,使用getContentResolver().query()方法可能无法获取到新创建的视频文件。这个方法是用于查询Content Provider中的数据,但是不同的操作系统版本对于新创建的视频文件的处理方式可能有所不同。

解决这个问题的方法是使用其他途径来获取新创建的视频文件。以下是一些可能的解决方案:

  1. 使用File类进行文件操作:可以使用File类来获取指定目录下的所有文件,然后筛选出视频文件。例如,可以使用File类的listFiles()方法来获取指定目录下的所有文件,然后使用文件名或文件类型进行筛选。
  2. 使用MediaScanner进行媒体文件扫描:Android系统提供了MediaScanner类,可以用于扫描媒体文件并将其添加到媒体库中。可以使用MediaScannerConnection类的scanFile()方法来扫描指定的文件,然后通过监听器获取扫描结果。
  3. 使用第三方库:还可以使用一些第三方库来简化获取新创建的视频文件的过程。例如,可以使用开源库如FFmpeg或ExoPlayer来处理媒体文件。

总结: 无法在所有操作系统版本上通过getContentResolver().query()获取新创建的视频文件可能是由于操作系统版本的差异导致的。可以通过使用File类进行文件操作、使用MediaScanner进行媒体文件扫描或使用第三方库来解决这个问题。具体的解决方案可以根据实际需求和应用场景进行选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

安卓基础干货(九):安卓内容提供者的学习

使用ContentProvider(内容提供者)共享数据 ContentProvider 在android中的作用是对外共享数据,也就是说你可以通过ContentProvider把应用中的数据共享给其他应用访问...,其他应用可以通过ContentProvider 对你应用中的数据进行添删改查。...是这样的,如果采用文件操作模式对外共享数据,数据的访问方式会因数据存储的方式而不同,导致数据的访问方式无法统一,如:采用xml文件对外共享数据,需要进行xml解析才能读取数据;采用sharedpreferences...类来完成,要获取ContentResolver 对象,可以使用Activity提供的getContentResolver()方法。...如果ContentProvider的访问者需要知道ContentProvider中的数据发生变化,可以在ContentProvider 发生数据变化时调用getContentResolver().notifyChange

1.7K10

Android深入四大组件(五)Content Provider的启动过程

在注释1处通过acquireUnstableProvider方法返回IContentProvider类型的unstableProvider对象,在注释2处调用unstableProvider的query...注释1处通过getProcessRecordLocked方法来获取目标ContentProvider的应用程序进程信息,这些信息用ProcessRecord类型的proc来表示,如果该应用进程已经启动就会调用注释...注释1处通过prepareMainLooper方法在ThreadLocal中获取Looper,并在注释3处开启消息循环。...到目前为止,上面的调用过程还是在AMS进程中执行的,因此,需要通过IBinder类型的mRemote对象向新创建的应用程序进程(目标Content Provider所在的进程)发送BIND_APPLICATION_TRANSACTION...处理这个通信请求的是在新创建的应用程序进程中执行的ApplicationThread的bindApplication方法,如下所示。

1.3K100
  • Android数据存储实现的5大方式

    把数据库从设备上考出来,你可以使用 adb pull 命令(或者在 IDE 上做相应操作)。 存储一个修改过的数据库到设备上,使用 adb push 命令。...第四种: 使用ContentProvider存储数据 Android这个系统和其他的操作系统还不太一样,我们需要记住的是,数据在Android当中是私有的,当然这些数据包括文件数据和数据库数据以及一些其他类型的数据...,我们可以通过迭代这个游标来获取所有的数据: Java代码 ?..._data的字段,_data字段列出了该文件在Android文件系统上的精确路径。...第五种: 网络存储数据 前面介绍的几种存储都是将数据存储在本地设备上,除此之外,还有一种存储(获取)数据的方式,通过网络来实现数据的存储和获取。

    3.5K20

    Android四大组件之ContentProvider

    Android四大组件之ContentProvider ContentProvider 安卓应用程序默认是无法获取到其他程序的数据,这是安卓安全学的基石(沙盒原理)。...可以简单的理解为,内容提供者就是一个可以在不同应用程序间共享数据的组件,相当于一个中间人,一个程序把数据暴露给这个中间人,另一个则通过这个中间人获取相应的数据....设置成自己的成员变量中记录, 所以对于获取getContext的时候只能放在方法内,不能放到成员位置,因为在成员上时是null,而在方法内调用时该类就会已经初始化完了 ContentProvider...// 如果不一致,则会导致对应的Activity无法启动。...并获取里面的数据 public void query(View view){ //得到内容提供者的解析器 中间人 ContentResolver resolver = getContentResolver

    1K60

    ContentProvider初探

    使用系统提供的ContentProvider 其实很多时候我们用到ContentProvider并不是自己暴露自己的数据,更多的时候通过 ContentResolver来读取其他应用的信息,最常用的莫过于读取系统...如果你想来调用这些ContentProvider就需要自行查阅相关的API资料了! 另外,不同的版本,可能对应着不同的URL!...ContentResolver resolver = getContentResolver(); //获取的是哪些列的信息 Cursor cursor = resolver.query...; resolver.insert(uri, conValues); } 注意事项: 上述代码在4.4以下都可以实现写入短信的功能,而5.0上就无法写入,原因是: 从5.0开始,默认短信应用外的软件不能以写入短信数据库的形式发短信...使用指南: 运行程序后,晾一边,收到短信后,可以在logcat上看到该条信息的内容,可以根据自己的需求 将Activtiy改做Service,而在后台做这种事情~ 小结 关于ContentProvider

    53530

    Carson带你学Android:关于ContentProvider的知识都在这里了!

    若ContentProvider的数据存储方式是使用SQLite & 一个,则不需要,因为SQLite内部实现好了线程同步,若是多个SQLite则需要,因为SQL对象之间无法进行线程同步 // b....) 实例说明 // 使用ContentResolver前,需要先获取ContentResolver // 可通过在所有继承Context的类中 通过调用getContentResolver()来获得ContentResolver...://cn.scu.myprovider/user"); // 根据URI 操作 ContentProvider中的数据 // 此处是获取ContentProvider中 user表的所有记录.../user/7") long personid = ContentUris.parseId(uri); //获取的结果为:7 4.6 UriMatcher类 作用 在ContentProvider...// 该方法在最下面 String table = getTableName(uri); // // 通过ContentUris类从URL中获取ID /

    44810

    Android ContentProvider之联系人数据库及操作

    具体哪些独立的数据可以占一行,可以在mimetypes这张表中找到, 原生Android的系统 一共12种,例如name,phone,email ect.....大部分情况下这两层的数据时指同一个联系人的信息,即他们俩是一一对应的关系,但是有些特殊 情况,这个我是查了一些老外的论坛加上自己的理解,例如 我做一个本地通信录和网络上的通信录同步的时候,可能有一个人他在本地存在...3 Uri dataUri = Uri.parse (“content://com.android.contacts/data”); data表 Ø 该表保存了所有创建过的手机测联系人的所有信息,每个字段占一行...Ø 联系人的所有信息保存在列data1至data15中,各列中保存的内容根据MimeTypeID的不同而不同。..._id Cursor query = getContentResolver().query(uri, new String[]{"_id"}, null, null, null);

    98110

    Android 11 应用兼容性适配,看这篇就够了

    App运行模式 在Android 11版本上,系统会根据App targetSdkVersion决定运行模式: ● App targetSdkVersion >= 30,默认为分区存储,并且无法取消...获取所有的Volume 对于前面描述的Uri中,getContentUri如何获取所有,可以通过下述方式: 1.3.2.1.2.Uri跟公共目录关系 MediaProvider...,”w”,null); 1.3.2.1.8.删除文件 通过ContentResolver接口删除文件,Uri为query出来的Uri: getContentResolver().delete(contentUri...在Android 11 版本上,需要通过声明MANAGE_EXTERNAL_STORAGE权限来获取“Allowed for all files(允许存储所有文件)”权限,进行功能实现。...2 兼容性影响 用户无法在搭载Android 11的设备上安装或更新仅通过APK签名方案v1 签名的应用。

    13.1K42

    Android四大组件之ContentProvider

    话不多说,让我们赶紧开始学习吧~ 简介 ContentProvider是Android系统中为开发者专门提供的不同应用间进行数据共享的组件,其提供了一套标准的接口用来获取以及操作数据,准许开发者把自己的应用数据根据需求开放给其他应用进行增删改查...public abstract ContentResolver getContentResolver(); 所以可以在所有继承Context的类中通过 getContentResovler() 方法获取...authorities:自定义ContentProvider的唯一标识,外部应用通过该属性值来访问我们的ContentProvider。因此该属性值必须是唯一的,建议在命名时以包名为前缀。...().insert(articleUri, contentValues); Cursor articleCursor = getContentResolver().query(articleUri...().insert(authorUri, contentValues); Cursor authorCursor = getContentResolver().query(authorUri

    65320

    Android11 (API30)适配

    App运行模式 在Android 11版本上,系统会根据App targetSdkVersion决定运行模式: ●  App targetSdkVersion >= 30,默认为分区存储,并且无法取消。...获取所有的Volume 对于前面描述的Uri中,getContentUri如何获取所有,可以通过下述方式: 1.3.2.1.2.Uri跟公共目录关系 MediaProvider...,"w",null); 1.3.2.1.8.删除文件 通过ContentResolver接口删除文件,Uri为query出来的Uri: getContentResolver().delete(contentUri...在Android 11 版本上,需要通过声明MANAGE_EXTERNAL_STORAGE权限来获取“Allowed for all files(允许存储所有文件)”权限,进行功能实现。...2 兼容性影响 用户无法在搭载Android 11的设备上安装或更新仅通过APK签名方案v1 签名的应用。

    8K11

    android学习笔记----内容提供者

    [] projection, String selection, String[] selectionArgs, String sortOrder) 查询给定的URI,在结果集上返回一个Cursor。...传递null将返回给定URI的所有行。 selectionArgs String: 您可以在选择中包含?s,它将被selectionArgs中的值替换,它们将在选择中出现。这些值将绑定为字符串。...,所以可以直接通过内容的解析者进行访问 // 拿到内容的解析者,直接通过上下文获取 public void click(View view) { switch (view.getId...及以上是无法实现的了,4.4之前还可以,android为了防止第三方软件拦截短信和乱写入短信记录,在4.4之后,设置了只有默认的短信应用才会有权限操作短信数据库。...,所以可以直接通过内容的解析者进行访问 // 拿到内容的解析者,直接通过上下文获取 public void click(View view) { switch (view.getId

    43920

    Android-图片的压缩(质量压缩和尺寸压缩)

    原理是:通过算法扣掉(同化)了 图片中的一些某个点附近相近的像素,达到降低质量 减少 文件大小的目的。 应用场景:图片的上传。 3.什么是尺寸压缩?...图片的尺寸压缩是指:按照一定的倍数对图片减少单位尺寸的像素值,可以改变图片在内存中的大小,不改变图片在磁盘中的大小。 原理是:通过减少单位尺寸的像素值,真正意义上的降低像素值。...image.png 由于我们这里只讲图片的压缩,关于再次之前如何获取图片返回的URI和高低版本适配7.0等问题,我们这里不说,我之前写过文章,Android-图片的选择,裁剪,压缩,适配高版本,这里就不说了...补充 质量压缩无法避免oom,但可以改变图片在磁盘中或者说是File文件的大小,尺寸压缩可以避免OOM,但不改变图片本身的大小,只改变加载是在内存中的大小,即bitmap....主要就说完了,我们在实际运用中可以把这两个方法作为工具类,随时调用。

    3.7K70

    Android读取短信和联系人

    短信 开始切入正题,先说短信,要从数据库中获取数据,就要了解其结构 短信数据库在data-->data中的下面路径 ?...Java代码为      //获取内容提供者 ContentResolver contentResolver = getContentResolver(); //获取短信表的路径...,其表结构也比较复杂,我们获取联系人的姓名、电话号码、邮箱,要通过3张表去提取 数据库所在位置data-->data中的下面路径 ?...data表,这个表中的“data1”列几乎包含了我们想要的数据,但是如何通过分类提取,第四列的代号说明了data1数据的类型,这些代号在mimetypes表中有对应的说明,要找到这些数据,又要通过raw_contact_id...来获取_ID和DISPLAY_NAME * _ID 该联系人的索引 * 通过这个ID可以在ContactsContract.CommonDataKinds.Phone.CONTENT_URI

    2.6K30

    Android ContentProvider实例详解

    2URL URL(统一资源标识符)代表要操作的数据,可以用来标识每个ContentProvider,这样你就可以通过指定的URI找到想要的ContentProvider,从中获取或修改数据。.../user/7") long personid = ContentUris.parseId(uri); //获取的结果为:7 UriMatcher UriMatcher本质上是一个文本过滤器,用在contentProvider...4ContentResolver ContentResolver通过URI来查询ContentProvider中提供的数据。除了URI以 外,还必须知道需要获取的数据段的名称,以及此数据段的数据类型。...user表中所有记录 Cursor cursor = resolver.query(uri, null, null, null, "userid desc"); while(cursor.moveToNext...发生数据变化时调用 getContentResolver().notifyChange(uri, null)来通知注册在此URI上的访问者。

    2.4K20
    领券