如何通过android-tv

时间:2018-06-22 19:23:20

标签: android android-tv

如果您完全熟悉电视输入框架和直播频道以及家庭频道节目预览,那么我有个问题要问您。我正在尝试创建一个主屏幕频道,该频道将通过我们的电视输入服务列出最近观看的直播频道。我可以列出它们很好,但是似乎无法将预览程序启动到指定的“实时频道”中。有谁知道该怎么做?

    Intent intent = context.getPackageManager().getLaunchIntentForPackage("com.google.android.tv");
    intent.setAction(Intent.ACTION_VIEW);
    intent.setData(TvContract.buildChannelUri(channel.getId()));

1 个答案:

答案 0 :(得分:0)

深入研究LiveChannel的来源之后,我找到了答案

static long addPreviewProgram(Context context, long homeChannelId, Uri liveChannelUri){
    PreviewProgram.Builder builder = new PreviewProgram.Builder();

    Intent intent = new Intent();
    intent.setComponent(new ComponentName("com.google.android.tv", "com.android.tv.MainActivity"));
    intent.setAction(Intent.ACTION_VIEW);
    intent.setData(liveChannelUri);

    builder.setChannelId(homeChannelId)
            .setType(PreviewPrograms.TYPE_CLIP)
            .setIntent(intent);

    Uri programUri = context.getContentResolver().insert(PreviewPrograms.CONTENT_URI, builder.build().toContentValues());

    return ContentUris.parseId(programUri);

}

意图动作和频道设置发生在LiveChannel的MainActivity中,但MainActivity不是启动程序活动,因此您必须将其指定为要启动到的活动。必须将动作设置为Intent.ACTION_VIEW,否则将永远不会设置频道。