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

尝试通过MediaStore.createDeleteRequest(getContentResolver(),uris为范围存储创建Android R(API30)的delete请求时出现异常

在Android R (API 30)中,范围存储是一种新的存储访问方式,它引入了一些变化和限制。根据提供的问答内容,我们可以看到在使用MediaStore.createDeleteRequest()方法创建Android R的delete请求时出现了异常。

首先,让我们来解释一下这个问题的背景和可能的原因。MediaStore是Android提供的一个用于访问媒体文件的API,它提供了一些方法来操作媒体文件,包括创建、删除、查询等。在Android R中,范围存储引入了一些新的权限和限制,以增强用户对媒体文件的隐私保护。

根据提供的代码片段,我们可以看到createDeleteRequest()方法接受两个参数:getContentResolver()和uris。getContentResolver()是用于获取ContentResolver对象的方法,它用于与Android系统的内容提供者进行交互。uris参数是一个范围存储的URI列表,用于指定要删除的媒体文件。

异常的出现可能有多种原因,下面是一些可能的解释和解决方法:

  1. 权限问题:在Android R中,范围存储引入了新的权限模型。您需要确保在应用的清单文件中声明适当的权限,以便访问和操作媒体文件。请检查您的清单文件,确保已经声明了适当的权限,例如READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE。
  2. URI格式问题:在范围存储中,您需要使用特定的URI格式来访问和操作媒体文件。请确保您提供的URI是正确的,并且符合范围存储的要求。您可以参考Android官方文档中关于范围存储的说明,了解正确的URI格式。
  3. 适配问题:Android R引入了一些新的变化和限制,可能需要您对应用进行适配。请确保您的应用已经适配了Android R,并且使用了适当的API和方法来操作媒体文件。您可以参考Android官方文档中关于适配Android R的指南,了解如何正确地操作媒体文件。
  4. 错误处理:在进行任何操作时,都应该考虑到可能出现的异常情况,并进行适当的错误处理。您可以使用try-catch语句来捕获异常,并根据具体的异常类型进行相应的处理。例如,您可以在出现异常时显示一个错误提示,或者记录异常信息以便进行排查和修复。

总结起来,要解决这个问题,您可以按照以下步骤进行操作:

  1. 确保您的应用已经声明了适当的权限,以便访问和操作媒体文件。
  2. 检查您提供的URI是否正确,并符合范围存储的要求。
  3. 确保您的应用已经适配了Android R,并使用了适当的API和方法来操作媒体文件。
  4. 在进行操作时,使用try-catch语句来捕获异常,并进行适当的错误处理。

如果您需要更详细的信息和示例代码,可以参考腾讯云的相关文档和资源。腾讯云提供了一系列与媒体处理和存储相关的产品和服务,例如云媒体处理、云存储等。您可以访问腾讯云的官方网站,查找相关产品和文档,以获取更多帮助和支持。

请注意,由于要求不能提及特定的云计算品牌商,我无法提供具体的腾讯云产品和链接地址。但是,您可以通过搜索引擎或访问腾讯云官方网站来获取相关信息。

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

相关·内容

ContentProvider再探——Document Provider

Contacts Provider:联系人提供者,这个就不用说了,这个用得最多 Storage Access Framework(SAF):存储访问框架,4.4 API 19 以后引入的一个新玩意,为用户浏览手机中的...它是DocumentsProvider的子类,另外,document-provider的存储格式 和传统的文件存储格式一致,至于你的内容如何存储,则完全决定于你自己,Android系统已经内置了几个 这样的...3)流程图: 如上面所述,document provider data是基于传统的文件层次结构的,不过那只是对外的表现形式, 如何存储你的数据,取决于你自己,只要你对外的接口能够通过DocumentsProvider...uri 删除文件: 前提是Document.COLUMN_FLAGS包含SUPPORTS_DELETE DocumentsContract.deleteDocument(getContentResolver...Authority为包名+provider的类型名,如: com.example.android.storageprovider.documents android:exported属性的值为ture

96030
  • Android基础总结(6)——内容提供器

    ,我们在Activity的onCreate()方法为按钮添加点击事件,点击之后调用我们自己写的一个读取联系人的方法readContrast(),在该方法中我们获取系统联系人的存放的Uri,然后通过获取的...我们可以通过新建一个类去继承ContentProvider的方式来创建一个自己的内容提供器。...注意,只有放存在VontentResolver尝试访问我们程序中的数据时,内容提供器才会被初始化。...注意只有当存在ContentResolver尝试访问 33 * 我们程序中的数据时,内容提供器才会被初始化。...你只应该在这个方法中执行快速的初始任务,并且要把数据库的创建和数据的装载延迟到提供器接收到实际的数据请求之后。

    1.2K90

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

    xml 处理时Dalvik会通过自带底层的本地XML Parser解析,比如XMLpull方式,这样对于内存资源占用比较好。...创建SDCard可以在Eclipse创建模拟器时随同创建,也可以使用DOS命令进行创建,如下: 在Dos窗口中进入android SDK安装路径的tools目录,输入以下命令创建一张容量为2G的SDCard...当某个值插入数据库时,SQLite 将检查它的类型。如果该类型与关联的列不匹配,则 SQLite 会尝试将该值转换成该列的类型。如果不能转换,则该值将作为其本身具有的类型存储。...外界根本看不到,也不用看到这个应用暴露的数据在应用当中是如何存储的,或者是用数据库存储还是用文件存储,还是通过网上获得,这些一切都不重要,重要的是外界可以通过这一套标准及统一的接口和程序里的数据打交道,...创建你的数据存储系统。大多数Content Provider使用Android文件系统或SQLite数据库来保持数据,但是你也可以以任何你想要的方式来存储。 4.

    3.5K20

    Android学习_ContentProvider和Uri

    /开头, 比如:要得到全部person记录的Uri为content://com.ljq.provider.personprovider/person,那么返回的MIME类型字符串应该为:”vnd.android.cursor.dir...那么MIME类型字符串应该以vnd.android.cursor.item/开头, 比如:得到id为10的person记录,Uri为content://com.ljq.provider.personprovider.../person/10,那么返回的MIME类型字符串为:”vnd.android.cursor.item/person”。...尽管大部分ContentProvider操作的数据都是来自于数据库,可是有时候能够来自于文件、XML或网络等其它的存储方式。...一般来说Content是单例模式,当多个应用程序通过ContentResolver来操作ContentProvider提供的数据时。数据操作会托付给同一个ContentProvider处理。

    46650

    Android 进阶11:进程通信之 ContentProvider 内容提供者

    在通过 ContentResolver 进行数据请求时(比如 contentResolver.insert(uri, contentValues);), 系统会检查指定 URI 的 authority...例如,您可以使用 BLOB 列来存储协议缓冲区或 JSON 结构。 之前反编译微信时,保存朋友圈的数据就是 BLOB 类型。...例如使用 BLOB 列来存储 JSON 创建 ContentProvider 子类,实现关键方法 ContentProvider 实例通过处理来自其他应用的请求来管理对结构化数据集的访问 所有形式的访问最终都会调用...设计数据存储 这里我们使用 SQLite 存储数据,创建一个数据库帮助类: public class DbOpenHelper extends SQLiteOpenHelper { private...在 ContentProvider 中可以通过 UriMatcher 来为不同的 URI 关联不同的 code,便于后续根据 URI 找到对应的表。

    2.7K100

    Android进程间通信(五):进程间通信的方式之ContentProvider

    小结 ---- 简介 前面我们介绍了: 进程间通信基础介绍 通过AIDL介绍Binder的工作机制 通过 Bundle、文件共享、Messenger实现进程间通信 进程间通信的方式之AIDL...onCreate() 代表ContentProvider的创建,getType(...)...用来返回一个Uri请求所对应的 MIME类型,如果我们不关心这个可以直接返回 null 或者 */*,query(...)、insert(...)、delete(...)、update(...)...); //参数为 “content://authorities” authorities为manifest中注册的 Uri uri = Uri.parse("content...三次查询操作则运行在不同的非UI线程中。 接下来我们来完善 TestProvider 来实现访问 日程安排 的功能。 首先我们来创建保存数据用的数据库。

    62520

    Android学习--跨程序共享数据之内容提供其探究

    不同于文件存储和SharePreferences存储中的两种全局可读性操作模式,内容提供器可以选择只对那一部分数据进行共享,从而保证我们程序中的隐私数据不糊有泄漏的风险。      ...-ContentResolver ----       对于每一个应用程序来说,如果你想要访问内容提供器当中共享的数据,就一定要借助 ContentResolver 类,可以通过Context类当中的getContentResolver...selectionArgs,                为where中的占位符提供具体的值                                sortOrder);                    ...new ArrayAdapter(ContactsActivity.this, android.R.layout.simple_list_item_1, list);...,返回false表示失败,注意的是只有当ContentResolver尝试访问我们的数据库的时候内容提供器才会被初始化       query()       从内容提供器中查询数据,使用uri参数来确定查询哪张表

    60630

    Android ContentProvider实例详解

    Android的数据存储方式总共有五种,分别是:Shared Preferences、网络存储、文件存储、外储存储、SQLite。...而且Android为常见的一些数据提供了默认的ContentProvider(包括音频、视频、图片和通讯录等)。...2URL URL(统一资源标识符)代表要操作的数据,可以用来标识每个ContentProvider,这样你就可以通过指定的URI找到想要的ContentProvider,从中获取或修改数据。...D:指向特定的记录,这里表示操作user表id为7的记录。如果要操作user表中id为7的记录的name字段, D部分变为 /7/name即可。...Android中类型已经固定好了,不能更改,只能区别是集合还是单条具体记录,子类型可以按照格式自己填写。 在使用Intent时,会用到MIME,根据Mimetype打开符合条件的活动。

    2.4K20

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

    Android数据存储实现的5大方式 数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,更加系统详细的介绍了5种存储的方法和异同。...xml 处理时Dalvik会通过自带底层的本地XML Parser解析,比如XMLpull方式,这样对于内存资源占用比较好。...创建SDCard可以在Eclipse创建模拟器时随同创建,也可以使用DOS命令进行创建,如下: 在Dos窗口中进入android SDK安装路径的tools目录,输入以下命令创建一张容量为2G的SDCard...当某个值插入数据库时,SQLite 将检查它的类型。如果该类型与关联的列不匹配,则 SQLite 会尝试将该值转换成该列的类型。如果不能转换,则该值将作为其本身具有的类型存储。...().delete(uri, null, null); } 你也可以指定WHERE条件语句来删除特定的记录: getContentResolver().delete(uri, “NAME=

    6.8K90

    Android四大组件之ContentProvider

    话不多说,让我们赶紧开始学习吧~ 简介 ContentProvider是Android系统中为开发者专门提供的不同应用间进行数据共享的组件,其提供了一套标准的接口用来获取以及操作数据,准许开发者把自己的应用数据根据需求开放给其他应用进行增删改查...public abstract ContentResolver getContentResolver(); 所以可以在所有继承Context的类中通过 getContentResovler() 方法获取...authorities:自定义ContentProvider的唯一标识,外部应用通过该属性值来访问我们的ContentProvider。因此该属性值必须是唯一的,建议在命名时以包名为前缀。...3 Uri 观察MyContentProvider中的几个方法,可以发现除了 onCreate() 方法外,其它五个抽象方法都包含了一个Uri(统一资源标识符)参数,通过这个对象可以来匹配对应的请求。...首先,自定义一个ContentProvider,然后向其写入和读取数据,使用SQLite作为ContentProvider的数据存储地址和数据来源,因此需要先建立一个SQLiteOpenHelper,创建一个名为

    65320

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

    若ContentProvider的数据存储方式是内存,则需要自己实现线程同步 public boolean onCreate() // ContentProvider创建后...(Uri uri) // 得到数据类型,即返回当前 Url 所代表数据的MIME类型 Android为常见的数据(如通讯录、日程表等)提供了内置了默认的ContentProvider 但也可根据需求自定义...Context的类中 通过调用getContentResolver()来获得ContentResolver ContentResolver resolver = getContentResolver(...2创建完毕 源码地址 Carson-Ho Github地址:ContentProvider2 结果展示 在进程展示时,需要先运行准备数据的进程1,再运行需要访问数据的进程2 运行准备数据的进程1 在进程...而采用ContentProvider方式,其 解耦了 底层数据的存储方式,使得无论底层数据存储采用何种方式,外界对数据的访问方式都是统一的,这使得访问简单 & 高效 如一开始数据存储方式 采用 SQLite

    44810

    Android:关于ContentProvider的知识都在这里了!

    若ContentProvider的数据存储方式是内存,则需要自己实现线程同步 public boolean onCreate() // ContentProvider创建后...(Uri uri) // 得到数据类型,即返回当前 Url 所代表数据的MIME类型 Android为常见的数据(如通讯录、日程表等)提供了内置了默认的ContentProvider 但也可根据需求自定义...Context的类中 通过调用getContentResolver()来获得ContentResolver ContentResolver resolver = getContentResolver(...2创建完毕 源码地址 Carson-Ho Github地址:ContentProvider2 ---- 结果展示 在进程展示时,需要先运行准备数据的进程1,再运行需要访问数据的进程2 1....而采用ContentProvider方式,其 解耦了 底层数据的存储方式,使得无论底层数据存储采用何种方式,外界对数据的访问方式都是统一的,这使得访问简单 & 高效 如一开始数据存储方式 采用 SQLite

    2.4K32

    干货 | 携程Android 10适配踩坑指南

    如果取值为 false ,表示不迁移依赖包到AndroidX,但在使用依赖包中的内容时可能会出现问题,如果你的项目中没有使用任何三方依赖,此项可以设置为 false。...以 Android 10(API 级别 29)及更高版本为目标平台的应用在默认情况下被赋予了对外部存储设备的分区访问权限(即分区存储), 对外部存储文件访问方式重新设计,便于用户更好的管理外部存储文件。...MediaStore API在共享目录指定目录下创建文件或者访问应用自己创建文件,不需要申请存储权限 MediaStore API访问其他应用在共享目录创建的媒体文件(图片、音频、视频), 需要申请存储权限...,未申请存储权限,通过ContentResolver查询不到文件Uri,即使通过其他方式获取到文件Uri,读取或创建文件会抛出异常; MediaStore API不能够访问其他应用创建的非媒体文件(pdf...四、明文HTTP限制 当SDK版本大于API 28时,默认限制了HTTP请求,并出现相关日志“java.net.UnknownServiceException: CLEARTEXT communication

    3.3K77

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

    ,”w”,null); 1.3.2.1.8.删除文件 通过ContentResolver接口删除文件,Uri为query出来的Uri: getContentResolver().delete(contentUri...● 如果应用未选择停用分区存储,并且请求 READ_EXTERNAL_STORAGE 权限,则用户会看到不同于 Android 10 的对话框。该对话框会指示应用正在请求访问相册和多媒体。...3 如果尝试请求ACCESS_BACKGROUND_LOCATION,同时请求任何其他权限,系统会抛出一个异常。(只针对sdk为android 11),具体表现为闪退。...2 兼容性影响 如果您的应用目标Sdk为R则堆指针标记默认开启,目标SDK低于R时,默认关闭。 使用如下命令开启或关闭此特性,查看您的应用是否有错误的使用指针场景。...2 兼容性影响 如果您的APP需要使用Mac地址作为设备的标识,无论您的Target SDK是否设置为R,只要运行在Android 11上,您就需要进行适配。

    13K42
    领券