我正在尝试使用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。我只想删除该应用创建的所有频道。
答案 0 :(得分:0)
请求一次应该一次。您在utils类中使用了sync还是寻找了其他请求。或尝试更改程序包名称,有时Java / android保留的程序包名称会导致SecurityException。