選択変数を使用して、チャネルの 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) はアプリによって作成され、サードパーティのテレビ入力チャンネルではありません。