android - 如何使用包名删除频道?
问题描述
我正在尝试使用这样的应用程序包名称从数据库中android.media.tv
删除所有频道ContentResolver
applicationContext.contentResolver.delete(
TvContractCompat.Channels.CONTENT_URI,
"${TvContractCompat.Channels.COLUMN_PACKAGE_NAME} = ?",
arrayOf(currentAppPackageName)
)
但我越来越
java.util.concurrent.ExecutionException: java.lang.SecurityException: Selection not allowed for content://android.media.tv/channel
at androidx.work.impl.utils.futures.AbstractFuture.getDoneValue(AbstractFuture.java:516)
at androidx.work.impl.utils.futures.AbstractFuture.get(AbstractFuture.java:475)
at androidx.work.impl.WorkerWrapper$2.run(WorkerWrapper.java:298)
at androidx.work.impl.utils.SerialExecutor$Task.run(SerialExecutor.java:91)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.SecurityException: Selection not allowed for content://android.media.tv/channel
at android.os.Parcel.createException(Parcel.java:1950)
at android.os.Parcel.readException(Parcel.java:1918)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
at android.content.ContentProviderProxy.delete(ContentProviderNative.java:547)
at android.content.ContentResolver.delete(ContentResolver.java:1684)
我知道我们可以通过 删除频道channelId
,但就我而言,我没有频道 ID。我只是想删除应用程序创建的所有频道。
- 我错过了什么?
解决方案
请求应该一次一个。您是否在 utils 类中使用了同步或查找任何其他请求。或者尝试更改包名,有时 Java/android 保留的包名会导致 SecurityException。
推荐阅读
- testing - 如何使用马拉松测试工具(MarathonITE)从命令行运行几个测试用例或测试套件?
- vb.net - C1pdfviewer 页面大小问题
- javascript - 打字头不允许自由文本输入?
- reactjs - 当我尝试更新时,输入字段取消选择
- azure-sql-database - Azure SQL 数据库或 SQL 数据仓库
- image - 我的 PNG IDAT 块有什么问题?
- r - purrr::possibly function 可能不适用于 map2_chr 函数
- c# - C# 查询的 Python 等效项
- ajax - 在codeigniter中删除没有页面刷新的记录不起作用
- mxgraph - 端点如何在 mxGraph 中作用于边?需要边在顶点的左侧中间高度连接