[英]Android Tv: get list of channels
我已經安裝了 androidtv-sample-inputs,所以我可以偽造一些電視輸入並有一些頻道,我想獲取有關該頻道的信息,但是,當我查詢以獲取該信息時,我得到一個空光標。
到目前為止我嘗試過的是:
TvInputManager tv = (TvInputManager)getApplicationContext().getSystemService(Context.TV_INPUT_SERVICE);
List<TvInputInfo> list = tv.getTvInputList();
String[] projection = {
TvContract.Channels._ID,
TvContract.Channels.COLUMN_DISPLAY_NUMBER
};
ContentResolver cr = getContentResolver();
Iterator<TvInputInfo> it = list.iterator();
while(it.hasNext()) {
TvInputInfo aux = it.next();
Uri uri = TvContract.buildChannelsUriForInput(aux.getId());
Log.d("TAG", uri.toString());
Log.d("TAG", aux.toString());
Cursor cur = cr.query(uri, projection, null, null ,null);
Log.d("TAG", cur.toString());
if(cur.moveToFirst()) {
Log.d("TAG", "not empty cursors");
}
}
我已經添加了使用權限,並且我已經檢查過電視輸入不是直通的。
<uses-permission android:name="com.android.providers.tv.permission.READ_EPG_DATA" />
<uses-permission android:name="com.android.providers.tv.permission.WRITE_EPG_DATA" />
<uses-permission android:name="com.android.providers.tv.permission.ACCESS_ALL_EPG_DATA"/>
你使用什么樣的權限?
如果您的應用程序不是signatureOrSystem,則您只能通過向電視提供商查詢來訪問您自己的頻道和節目。 您正在執行的所有查詢都根據您的包名稱進行過濾。
我猜您可以從頻道中檢索的信息僅限於可從 TvInputInfo 訪問的信息。
除了清單文件中所需的“com.android.providers.tv.xxx”EPG 權限之外,您還必須簽署您的 .apk ! 否則,您將看到設備上可用的所有 TvInput,但沒有組成這些 tvInput 的頻道(並且沒有返回任何錯誤;-))。 Android Studio 提供此功能(“構建”菜單項,然后“生成簽名的 APK”)請參閱如何簽署 android apk 文件
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.