簡體   English   中英

Android 電視:獲取頻道列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM