当通过 ContentResolver 为频道获取节目时,我遇到了一个问题,这完全是造成混淆的原因,并带有一个选择变量。
我得到以下异常:
java.lang.SecurityException: Selection not allowed for content://android.media.tv/program?channel=5
我可以毫无问题地获取频道的所有程序,但是当我将选择(where 子句)添加到查询方法时,无论选择字符串如何,即使在 1=1 上,我都会得到上述安全异常:
Cursor cursor = resolver.query(programsUri, null, "1 = 1", null, null);
我觉得这很奇怪,因为我在获取频道的所有节目时没有问题:
Cursor cursor = resolver.query(programsUri, null, null, null, null);
一位同事告诉我,这是因为我的应用程序不是我正在开发的设备上的系统应用程序,但我再次觉得这很奇怪,因为我可以在没有选择属性的情况下获取所有程序,所以为什么要它需要额外的权限才能执行 where 子句?真的希望有人可以帮助我,因为最好不要被迫获取所有程序并自己进行选择过滤,而是使用提供的选择属性..提前致谢:-)
OBS:频道 (?channel=5) 由应用程序创建,而不是第三方电视输入频道。