Android TV开发经验总结---初识TV开发

Android Studio TV开发教程(一)处理电视硬件 处理电视硬件电视硬件与其他Android设备有很大不同。 电视不包括其他Android设备上的某些硬件功能,例如触摸屏,相机和GPS接收器。 电视也完全依赖辅助硬件设备。 为了让用户与电视应用程序交互,他们必须使用遥控器或游戏手柄。 当您构建电视应用程序时,您必须仔细考虑在硬件上运行的硬件限制和要求。本课程介绍如何检查您的应用是否在电视上运行,以及如何处理不支持的硬件功能。 要了解各种输入方法,请... 阅读详情

        之前一直从事手机APP应用开发,由于工作的需要转入TV电视端的开发,初次接触确实有点懵逼,在TV开发过程中的处理思路跟手机还是有很大区别的,接下来将讲述下TV开发过程的经验,与大家一起分享共同学习。

       刚接触TV开发,需要我们转变下思路,在TV开发中没有以前我们手机端的什么 dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent 事件来分发,而需要使用dispatchKeyEvent、onKeyDown、onKeyLisenter 等事件来分发处理焦点问题,而且TV端焦点没有什么好办法可以全局控制,需要我们自己来想办法规定焦点走向,可能一个没处理好,就一脸懵逼了,焦点为啥跑的不见了,焦点为啥跑那里去了等等问题。 接下来我们就说说在TV端开发的基础知识

   Android TV app开发与一般Android开发最大的区别在于焦点控制 , 用户在使用Android TV设备主要是通过遥控器操作app。机顶盒应用不同于手机应用,因为多数是没有触摸屏的,只能靠遥控器,所以要保持一个焦点的位置,让用户知道当前操作作用的对象. 然而一些app,依据系统对focus的判断,会出现的状况: 上下导航时,不是想要的结果. 边缘移动时,会出现焦点丢失的状况. 有时想直接定位到某个位置上. 

        android提供了一些焦点相关的属性,在现有的框架层下通过设置View的属性来获得焦点

        android:focusable:设置一个控件能否获得焦点
        android:background:设置在作为背景的drawable
        android:nextFocusDown:定义下一个获得焦点的控件当按下键时
        android:nextFocusUp:定义下一个获得焦点的控件当按上键时
        android:nextFocusLeft:定义下一个获得焦点的控件当按左键时
        android:nextFocusRight:定义下一个获得焦点的控件当按右键时
        <requestFocus/>:强制设置一个焦点到指定的view或它的一个子类,前提是android:focusable为true能够获得焦点

         下面列出两种方法处理焦点问题

   第一种方法:

   采用Android自带的直接控制焦点上下左右的方法。这种方法的前提是必须知道每个view的id,因此在进行布局时有必须要通过view.setId(…)指定view的特定ID,然后通过view.setNextLeftView(…)等四个方法控制该view的上下左右移动后所到达的view。然而这种方法只适用于前提就设置好ID的场景,不适合动态布局的场景

   第二种方法:

在一些比较复杂的Layout中,特别是涉及到在View的焦点变化的过程中还要控制view的背景以及字体颜色变化等。必须对每个ImageButton 设置焦点捕获实际(setOnFocusChangeListener),在该监听事件中处理

ImageButton.setOnFocusChangeListener(){ 
          public void onFocus(boolean Focus){ 
                   if( Focus ){
                    // ImageButton 2.1 获焦时, ImageButton 2.1 改变获取焦点背景, ImageButton 1.1也改变失去焦点背景 
                    } else{
                     //  ImageButton 2.1 获焦时,  ImageButton 2.1 改变失去焦点背景 ,  ImageButton 3.1也改变获取焦点背景  
                    }
  然后使用Key事件分发来确定焦点移动方向,一般可以使用onKeyDown事件进行处理

public void OnKeyDown(int keyCode, KeyEvent event){
                    if( event.KEYCODE_DROP_UP== keyCode ){  //如果按下的是上键
                            mImgBtnArray1[ThirdIndx ].requestFocus;
                     }
                    if( event.KEYCODE_DROP_DOWN == keyCode ){  //如果按下的是下键
                              mImgBtnArray3[ ThirdIndx ].requestFocus;
                     }
                    if( event.KEYCODE_DROP_LEFT == keyCode ){  //如果按下的是左键
                              mImgBtnArray1[ ThirdIndx-1 ].requestFocus;
                     }
                    if( event.KEYCODE_DROP_RIGHT == keyCode ){  //如果按下的是右键
                              mImgBtnArray1[ ThirdIndx+1 ].requestFocus; 
                     }
       }
    接下来讲讲TV开发中需要了解的KeyCode 可以参考下 Android常用的物理按键及其触发事件此博客讲解的按钮事件

 常用的按键Code有 

  KEYCODE_MENU 菜单键

  1. * 方向键  
  2.  * KEYCODE_DPAD_CENTER 
  3.  * KEYCODE_DPAD_UP  
  4.  * KEYCODE_DPAD_DOWN  
  5.  * KEYCODE_DPAD_LEFT  
  6.  * KEYCODE_DPAD_RIGHT 

      在按键过程中 按下和松开的Action主要是ACTION_DOWN、ACTION_UP  事件分发和处理是在 ACTION_DOWN 中处理

此处需要特别说明的是    View.setFocusable(true);   改变控件是否可以获得焦点,然而同时会触发 setOnFocusChangeListener事件 

   接下来将会讲解在TV开发中所涉及到的控件使用技巧

             

AndroidTV开发教程(1) 直接开始我们的第一个程序 创建一个AndroidTV应用程序 1.打开AndroidStudio New Project 因为是第一个项目,我们选择Add No Activity,然后点击Next进入下一步。 在这里输入自己的项目名称,还有选择API level,然后点击finish。 好了,现在我们的第一个项目已经建立好了,继续丰富内容。 2.添加一个Activity New→Activity→Android TV activity,勾择... 阅读详情

相关推荐

安卓TV开发(前言)— AndroidTV模拟器初识与搭建

目前市场已经有很多巨头企业涉足物联网和智能家居领域,包括小米,乐视,华为等已经相继进军,并以开发出相应的产品。乐视智能电视,小米手环,手表,电视盒子,华为智能路由器,这些设备是怎么运行是其原理,也就是安卓+嵌入式+网络通讯,接下来介绍下模拟器搭建。

Tamic (大白) 2万+

2022年Android TV应用项目开发实战

课程简介:本套教程是以一个TV应用的项目开发实战,教大家如何使用EBoxUI库(关于什么是EBoxUI库请看下面)。开发一个完整用于机顶盒也就是TV上的安卓应用,课程大约有100节左右.项目名称叫香茶TV。是一个影视播放类型的应用。总体分为5大页面。分别是:首页、列表页、记录页、搜索页、详情页。每个页面又以不同的功能功分出更多的子页面。 EBoxUI库:EBoxUI是本人在做TV应用开发的这四五年时间里自已编写的一套用于TV应用上的高效UI库,这套UI库已经用在好几个线上项目中,并且运行良好。最低支持系统版本是Android4.4 使用技术栈:Java1.8、RxJava2、OkHttp、Retrofit、Glide、Butterknife、IJKplayer、MVP架构 开发工具:AndroidStudio 2022.2.1 项目截图:              

安卓TV开发(三) 移动智能设备之实现主流TV电视盒子焦点可控UI

前言:移动智能设备的发展,推动了安卓另一个领域,包括智能电视和智能家居,以及可穿戴设备的大量使用,但是这些设备上的开发并不是和传统手机开发一样,特别是焦点控制和用户操作TV上有很大的区别,本系列博文主要用TV播放器的实现去了解下在智能设备上的开发的相关技术。本次实现主流的九宫格UI,并由遥控器方向键控制view焦点移动,到达边缘进行翻页效果。

Tamic (大白) 9360

Android Studio开发Android TV

在“Add an Activity to Mobile”(在移动设备上添加一个Activity)页面上,选择“TV”选项卡,然后选择你要创建的Activity类型,比如“Leanback Activity”(Leanback活动)或“Fullscreen Activity”(全屏活动)。你可以通过打开Java文件和XML布局文件来编辑你的代码,并通过点击绿色的“Run”按钮来运行和测试你的应用程序。在弹出的对话框中,填写你的应用程序的名称、包名和所需的最低Android API级别。

牛肉胡辣汤 3756

安卓电视机(此处用小米电视机)远程连接电脑

本文章关于远程这块!简单实用教程,自己写的不喜勿喷!(并不一定适用所有的朋友哦,我这是公司局域网使用的) 前提:你的电脑已经做好的可以远程的设置!!! 首先我的先在电脑上下载一款软件,叫做“Remote Desktop”,它长啥样呢!当当当当~,就是它啦→,这是已经安装好的图标啦!我们源文件应该是一个apk后缀的安装包。准备好上面说的安装包后,下面开始说如何运用起来: 1,将安装包拷入U盘 2,U盘插到我们的小米电视机上(就是可以安装安卓应用的电视机啦),找到安装包,这是我下载的安装包文件名字:,直

lh0324的博客 9037

基于Android电视机的ZigBee智能家居系统设计

智能家居是利用先进的计算机技术,嵌入式系统和网络通信技术,将家庭中的各种设备(如照明系统、环境监控、安防系统、网络家电)通过家庭网络连接到一起的,自从美国在1984年真正的智能建筑出现以后,国外已经有将近30年的研究历史,而国内在这方面的研究就相对较晚,从2003年才逐步的应用于高端市场,而且标准不一。由于智能家居的系统具有安全、方便、高效、快捷、智能化等诸多的优点,从而使智能家居的开发建设成为2

liqingkk的专栏 1855

android TV 开发规范

Android TV开发规范 一.Android TV概述 Android TV应用使用与手机和平板电脑相同的架构,这就意味着我们可以根据已经了解的有关构建Android应用的方法去构建新的电视应用程序,或者将现有的应用程序拓展到电视设备上去运行。 二.创建电视应用 Android提供了丰富的用户体验,针对大屏幕的设备(如Android TV)上运行的应用进行了优化。TV的用交互与平板和手机设备有...

android 系统定制开发那些事 1万+

Android Studio TV开发教程:处理电视硬件

您可以在Android Studio中创建一个电视应用程序项目,并使用上述代码示例来处理遥控器输入、管理焦点和导航,并调整布局和用户界面以适应电视设备。您还可以使用Android的相关API来处理电视硬件功能,如音量控制、频道切换和外部设备连接。首先,我们需要在Android Studio中创建一个电视应用程序项目。完成后,Android Studio将为您创建一个电视应用程序的基本结构。在本教程中,我们将探讨如何在Android Studio中开发针对电视设备的应用程序,并处理与电视硬件相关的问题。

ByteWhiz的博客 956

安卓TV开发《1》TV入门

前言 近期换了一份工作,入职那天一看整个办公室好大气,好多智能电视,估计有50寸,顿时心里明白了我一个安卓开发肯定是要干TV开发了。还好无论TV开发、安卓wear、安卓车载都是和安卓手机开发差不多。于是乎看看官方给的TV开发文档,瞅瞅差异,搞起来。所以,以下有关TV的文档就按照官方文档搞一遍。顺带着自己的一点理解整理下。 一、官方文档地址 传送门 二、安卓TV概览 如果您有 Androi...

dev晴天的博客 5681

2025反爬终极方案:Python破解Cloudflare v2行为指纹,设备伪装+轨迹模拟拦截率压至1%

Cloudflare v2的反爬逻辑越来越接近“人类行为识别”,单纯的技术破解已失效,核心竞争力变成“模拟真实用户的能力”。本文的终极方案本质是“全方位复刻人类行为”——从设备指纹到操作轨迹,从网络特征到交互模式,让爬虫成为“无法被区分的真实用户”。这套方案的优势是“通用性强”,不仅适用于Cloudflare v2,也能破解大多数高反爬网站(如小红书、知乎、跨境电商)的行为检测;且代码可直接复用,新手只需替换目标URL和数据提取逻辑,就能快速落地。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2354

家长必看!用RouterOS轻松屏蔽不良网站,保护孩子上网安全

本文为家长提供了一份详细的RouterOS路由器配置指南,旨在通过技术手段保护儿童上网安全。文章核心介绍了如何利用RouterOS的DNS静态条目功能,轻松实现禁止访问特定不良网站,并结合防火墙时间规则,为孩子构建一个纯净、可控的家庭网络环境,操作简单,无需专业背景。

weixin_28363123的博客 1266

安卓系统的电视机_再送出一款智能电视、电视盒子、安卓手机通用TV直播软件...

正文共:1637字22图预估阅读时间:5分钟写在前面:★ 这里全部都是破解后的免费白漂版本;★ 小编平常自己收集到不错的分享出来;★ 大家需要什么软件请直接在下面留言;★ 看免费电视电影点文末的“阅读原文”。分享缘起之前分享过好几款TV盒子电视台直播软件。今天再分享一款~软件安装包软件安装包的源文件存放在后台了。已破解永久免费,放心使用。按文章末尾的“提取编码”,回复...

weixin_39633807的博客 3104

sdc时钟约束2——多驱动时钟

sdc 多驱动时钟 master_clock

qq_40411444的博客 5529

【TV】智能电视机四大操作系统介绍

智能电视机四大操作系统介绍 近年来智能电视机四大操作系统介绍随着电视机技术的发展,电视机智能化的趋势愈加明显,步伐也越来越快,智能电视机不仅在外形、画质等方面拥有独特的优势,而且能为用户提供丰富的功能。因为采用了智能化操作系统,那么目前市场有哪些主流的智能电视操作系统呢?谁更适合普通用户使用呢?接着往下看。   主流智能电视操作系统一:安卓操作系统(主流)   目前,Andr

产业互联网&消费类电子 1万+

Krylov子空间与Arnoldi过程

一、应用背景 Krylov子空间方法是模型降阶(MOR)的一种,Krylov 子空间方法就是在Krylov子空间中寻找近似解。 二、Krylov子空间 n是原始矩阵的维度,m为降阶后矩阵的维度,通常m<<n。 三、Arnoldi 过程: 计算Km 的一组正交 对应上述MGS过程的python代码: import numpy as np def arnoldi_itera...

保持写作习惯,完成知识沉淀 6001

诊断CAPL自动化(3)——封装了接收诊断数据的通用CAPL脚本函数库

DiagGetRespPrimitiveSize (获取诊断响应的单个数据) diagGetPrimitiveData (获取诊断返回的所有数据) DiagGetRespParameter(数值类型) DiagGetRespParameter(字符串类型) DiagGetRespParameter(byte数组)

蚂蚁小兵 6218

【Android TV 开发】安卓电视调试 ( 开启网络远程调试 )

一、硬件环境准备、 二、开启开发者模式、 二、查询 Android 电视局域网 IP 地址、 四、开启远程连接、

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 2万+

【突变检验方法一】MATLAB实现Pettitt突变检验

MATLAB实现Pettitt突变检验及贝叶斯突变检测等

WW、forever的博客 1万+

智能电视机安装App

每年的12月18日是世界电视机日,电视机诞生于1925年,最初是电子机械式电视机;到了1933年,诞生CRT电视(黑白电视),它只有黑色或白色,看任何物品都是黑色或者白色。又过了20年,1953年彩色电视机也问世了,看蓝天不是灰色而是蓝色,颜色更多,其射线管的寿命比较长约为15年,体验更好。到了1981年,液晶电视机横空出世,它色彩艳丽,缺点是其发光灯泡的寿命比较短约5年左右。到了2009年,电视行业开始使用Android系统,电视机步入智能化时代。高清、大屏幕、轻薄、娱乐化、互动性等特征,成了智能化的标配

sanqima的专栏 1万+

Spring AI 实战:如何使用 MCP Server 搭建 MCP 天气查询服务

MCP(Model Context Protocol)是 Anthropic 提出的一种开放协议,它定义了AI 模型与外部世界交互的标准方式。通俗地说:大模型本身只拥有训练数据中的知识,它不知道今天的天气、无法查询你的数据库、不能调用你的内部 API。MCP 就是解决这个问题的"桥梁"——它让模型能够发现并使用外部工具(Tools),就像人用手去操作工具一样。角色职责对应依赖MCP Server暴露工具(Tool),供模型调用MCP Client连接 Server,让模型发现和使用工具本文我们先聚焦。

SmartSi 758

qwen2vl ValueError: Image features and image tokens do not match: tokens: 568, features 600

本文介绍了一个用于计算多模态数据集中样本token数量的Python工具,特别针对包含文本和图像的Qwen2-VL模型数据集。

q742971636的博客 1012

【亲测免费】 TV-Bro浏览器:专为电视遥控器优化的安卓浏览器指南

**TV-Bro** 是一款专为安卓智能电视设计的简易网页浏览器,它特别适配于使用电视遥控器进行操作。这款浏览器具备一系列用户友好的特性,包括对电视遥控器的良好支持、标签页浏览、书签管理、语音搜索、用户代理切换以及内置下载管理器等。它利用Android自带的Web渲染引擎(基于WebKit/Blink),确保了良好的兼容性和性能。项目可在[Google Play商店](https://play.g...

gitblog_00490的博客 3948

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

android电视系统升级,如何对安卓电视机进行固件(软件)升级?

如果电视机已连接到网络,将电视机的“自动检查更新”或“自动软件下载”功能打开,则当有适用的新软件升级推送时,电视机会自动下载。对于2018至2020年发布的如下安卓电视机:• 2020 机型:X8000H, X8500H, X90xxH_X91H, X9500H , Z8H, A8H 系列• 2019 机型:A9G, Z9G, X9500G, X85xxG_U8G系列• 2018 机型:...

weixin_33318722的博客 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

TV-Bro电视浏览器:安卓智能电视网页浏览终极指南

TV-Bro是一款专为安卓智能电视设计的简易网页浏览器,特别针对电视遥控器操作进行了深度优化。这款浏览器让您能够在大屏幕上享受流畅的网页浏览体验,无需鼠标和键盘,仅凭电视遥控器即可轻松操作。 ## 核心功能特性 TV-Bro电视浏览器具备一系列实用功能,让您的电视上网体验更加便捷: - 完美适配电视遥控器操作,支持方向键和确认键导航 - 标签页浏览功能,支持同时打开多个网页 - 书签管理系统,

gitblog_00226的博客 2559

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

my-tv:装到安卓电视上、开屏就能看的电视直播软件

my-tv 是一款免费的安卓电视直播软件:APK 装好、打开就能看,不用注册账号,也没有会员费。当前版本 v2.1.0,全程遥控器操作、数字键直达选台、支持开机自启,适合安卓智能电视和电视盒子。📺 客厅的机顶盒会员一过期,开机先放三十秒广告,想看的直播反倒打不开。与其续费,不如把 my-tv 拷进电视——装完即播,日常操作全靠遥控器上那几个常用键。 ## 遥控器上到底按哪个键换台 不用研究

gitblog_01048的博客 812
上一篇: Android 嵌套ViewPager实现连贯双滑动
下一篇: Android TV开发经验总结---控件Gridview使用
Derbe
博客等级 码龄15年 27粉丝 6原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值