android tv 自定义频道,如何在Android TV 桌面添加自定义频道/节目

本文介绍了如何在Android TV上添加自定义频道和节目,包括创建MediaChannel和MediaProgram实体类,设置节目背景为本地图片,以及通过FileProvider解决权限问题。详细步骤包括初始化频道信息、添加频道和节目,并提供了MediaTVProvider的相关代码示例。
摘要由CSDN通过智能技术生成

最近在做Android TV O的项目,需要在TV 桌面添加自定义频道/节目,节目的背景图片要显示为SD卡或者缓存目录里面的图片。

添加自定义频道

节目背景显示本地目录的图片

一、添加频道

1. 首先新建频道、节目实体类,属性如下。

public class MediaChannel {

private final String mName;

private final String mDescription;

private final String mMediaUri;

private final String mBgImage;

private final String mTitle;

private final String mMediaChannelId;

private List mPrograms;

private boolean mChannelPublished;

private long mChannelId;

MediaChannel(String name, List programs, String mediaChannelId) {

mName = name;

mTitle = "playlist title";

mDescription = "playlist description";

mMediaUri = "dsf";

mBgImage = "asdf";

mPrograms = programs;

mMediaChannelId = mediaChannelId;

}

// 省略 set get toString

}

public class MediaProgram implements Parcelable {

private final String mMediaProgramId;

private final String mContentId;

private final String mTitle;

private final String mDescription;

private final String mBgImageUrl;

private final String mCardImageUrl;

private final String mMediaUrl;

private final String mPreviewMediaUrl;

private final String mCategory;

private long mProgramId;

private int mViewCount;

MediaProgram(String title, String description, String bgImageUrl, String cardImageUrl,

String category, String mediaProgramId, String contentId) {

mMediaProgramId = mediaProgramId;

mContentId = contentId;

mTitle = title;

mDescription = description;

mBgImageUrl = bgImageUrl;

mCardImageUrl = cardImageUrl;

mMediaUrl = "";

mPreviewMediaUrl = "";

mCategory = category;

}

// 省略 set get toString

}

2. 初始化频道、节目信息

private void initChannel() {

Uri usbUri = getUSBCardImageFileUri();

Uri pvrUri = getPVRCardImageFileUri();

grantUriPermissionToApp("com.google.android.tvlauncher", usbUri);

grantUriPermissionToApp("com.google.android.tvlauncher", pvrUri);

String bgImageUrl = "";

String usbCardImageUrl = getUSBCardImageFileUri().toString();

String pvrCardImageUrl = getPVRCardImageFileUri().toString();

int mediaProgramId = 1;

int contentId = 0;

MediaProgram usbProgram = new MediaProgram("USB", "usb description", bgImageUrl, usbCardImageUrl,

"USB category", Integer.toString(mediaProgramId), Integer.toString(contentId ++));

MediaProgram pvrProgram = new MediaProgram("PVR", "pvr description", bgImageUrl, pvrCardImageUrl,

"PVR category", Integer.toString(mediaProgramId), Integer.toString(conten

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值