android电视盒子开发,Android TV机顶盒开发之初级接触
最近接触了点Andiroid 机顶盒开发,简单的写一下,希望我的经验可以给各位带来一点经验。图片我就不上传的,很麻烦的!
首先是Android的apk如何安装到机顶盒上?将TV连接机顶盒,然后找到设置,连接的网络,查看网络的IP地址,例如(192.168.0.1);
打开AndroidStudio的Terminal下命令:adb connect 192.168.0.1,然后等待电视上出现是否允许调试的字样,点击允许。
然后Terminal会出现带...successful...的字样,表示连接成功,你也可以通过点击Run App(没错,就是AndroidStudio上我们经常运行的绿三角的按钮)查看,会出现你的盒子的名字代表连接成功。
当你写完程序,想调试的话可以直接点击绿三角按钮,选择盒子运行,直接安装在盒子上了。
如果你想将apk安装到盒子上,可以把apk放到该项目下,然后通过下adb install apk名字.apk 进行安装,然后卸载为adb uninstall 名字.apk
如果你想断开与盒子的连接,可以通过下 adb kill-server杀死adb来断开,也可以通过 adb start-server来重新连接。(我这里不能两台电脑同时连接盒子,必须其中一个断开连接,另一个才能连)
接下来我简单说一下app是如何监听遥控器的键的,首先遥控器上的上下左右是不用监听过的,点击上下左右是可以自动跳到你的控件上去的(但但是你的控件必须加上 android:focusable="true" 这个属性)我这里监听的是TextView的点击(我这里发现遥控器按下Button是无法禁监听到,如果有大牛知道遥控器如何实现Button的点击事件,请告知小弟)
重写OnKeyDown(),然后判断该TextVIew是否获取焦点,如果获取到,就响应对应的事件。
布局:布局没什么,主要是加上android:focusable="true"这个属性<?xml version="1.0" encoding="utf-8"?>
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:background="@mipmap/bg"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.yaodan.tvdemo.MainActivity">
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
android:background="@drawable/title_textselect"
android:textColor="@color/textcolorselct"
android:id="@+id/bt_a"
android:layout_width="0dp"
android:layout_weight="1"
android:gravity="center_horizontal"
android:layout_height="wrap_content"
android:focusable="true"
android:text="按钮a" />
android:background="@drawable/title_textselect"
android:textColor="@color/textcolorselct"
android:id="@+id/bt_b"
android:focusable="true"
android:layout_width="0dp"
android:layout_weight="1"
android:gravity="center_horizontal"
android:layout_height="wrap_content"
android:text="按钮b" />
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
android:background="@drawable/title_textselect"
android:textColor="@color/textcolorselct"
android:id="@+id/bt_c"
android:focusable="true"
android:layout_width="0dp"
android:layout_weight="1"
android:gravity="center_horizontal"
android:layout_height="wrap_content"
android:text="按钮c" />
android:background="@drawable/title_textselect"
android:textColor="@color/textcolorselct"
android:id="@+id/bt_d"
android:layout_width="0dp"
android:layout_weight="1"
android:gravity="center_horizontal"
android:layout_height="wrap_content"
android:focusable="true"
android:text="按钮d" />
实现代码package com.yaodan.tvdemo;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.KeyEvent;import android.view.View;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;import com.yaodan.tvdemo.adda.AddActivityA;import com.yaodan.tvdemo.addb.AddActivityB;import com.yaodan.tvdemo.addc.AddActivityC;import com.yaodan.tvdemo.addd.AddActivityD;public class MainActivity extends AppCompatActivity { private TextView bta, btb, btc, btd; @Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
} public void initView() {
bta = (TextView) findViewById(R.id.bt_a);
btb = (TextView) findViewById(R.id.bt_b);
btc = (TextView) findViewById(R.id.bt_c);
btd = (TextView) findViewById(R.id.bt_d);
}//重写按键方法
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER || keyCode == KeyEvent.KEYCODE_ENTER) { Toast.makeText(MainActivity.this,"bbb",Toast.LENGTH_LONG).show(); //判断bta是否获取焦点
if (bta.hasFocus()) {
Toast.makeText(MainActivity.this,"按钮a被点击了",Toast.LENGTH_LONG).show();
} else if (btb.hasFocus()) {
Toast.makeText(MainActivity.this,"按钮b被点击了",Toast.LENGTH_LONG).show();
} else if (btc.hasFocus()) {
Toast.makeText(MainActivity.this,"按钮c被点击了",Toast.LENGTH_LONG).show();
} else if (btd.hasFocus()) {
Toast.makeText(MainActivity.this,"按钮d被点击了",Toast.LENGTH_LONG).show();
}
} return super.onKeyDown(keyCode, event);
}
}
android电视盒子开发,Android TV机顶盒开发之初级接触相关推荐
- android电视盒子设备名字,Android电视TV盒子开发——常用ADB命令-Go语言中文社区...
目前智能电视(TV).盒子(机顶盒)基本都是Android系统,所以开发盒子app的重任自然就会落到我们这些苦逼Android程序员身上. PS:目前盒子的Android版本绝大部分还都是在6.0以下 ...
- Android TV机顶盒开发简单介绍
关于Andiroid 机顶盒开发,我简单的写一下,希望我的经验可以给各位带来一点经验.图片我就不上传的,很麻烦的! 首先是Android的apk如何安装到机顶盒上? 1. 将TV连接机顶盒,然后找到设 ...
- android电视盒子解码很慢,安卓电视/盒子很卡很慢原因及解决方法
原标题:安卓电视/盒子很卡很慢原因及解决方法 安卓电视以及机顶盒跟手机一样,在使用时间久了就会出现一些卡顿的现象,今天小编帮大家总结了一些导致安卓电视.盒子卡顿的原因,并且根据这些原因提出解决的办法, ...
- android电视盒子解码很慢,安卓电视、盒子很卡很慢?原来是这些东西在捣鬼!...
用安卓电视.盒子的用户肯定都有这样一种情况:"电视.盒子越用越卡,打开软件都会卡住".下面楼主就为大家总结了5点造成安卓系统卡的原因,肯定能解决你的电视.盒子卡顿问题! 一.电视. ...
- android电视盒子软件安装,安卓电视怎么安装软件 智能电视软件安装方法教程
智能电视作为新型的家具电器,功能的无限扩展也遥遥领先传统电视.下面就告诉大家在家里遇到一台新的设备的时候该如何正确的安装自己想要的电视软件. 安装方法 1.使用U盘安装 >将下载的APK文件拷贝 ...
- android电视盒子解码很慢,电视盒子反应慢又卡原因及解决办法推荐!
原标题:电视盒子反应慢又卡原因及解决办法推荐! 盒子网络不稳定会导致很多问题,最直观的感受就是:1.看视频卡,2.盒子容易掉线.断网. 遇到这些问题该怎么办呢?其实也是有解决办法的,现在跟大家分享一下 ...
- 电视盒子最新android,安卓盒子已倒下!4款Win10电视盒子推荐
受广电局229文件影响,现在很多安卓电视盒子内容都已经被屏蔽掉了,那我们是不是没办法看直播和其它资源了呢?答案是有!Win10电视盒子. 1.Voyo MiniPC-Box_V1 价格:688元 V1 ...
- android电视盒子应用市场占有率,各Android版本市场占有率排名出炉
据外媒报道,与Android 7.0 Nougat一样,Android 8.0 Oreo的市场占有率花了5个月突破1%,花了10个月达到两位数字. 换而言之,这款最新版Android普及的速度并不比以 ...
- android 电视遥控 编程,Android编程调用红外线遥控功能示例
本文实例讲述了Android编程调用红外线遥控功能.分享给大家供大家参考,具体如下: Android API Demos中有红外线遥控的小例子,在网上找了很久相关的资料,发现比较少,或许找的方法不对. ...
最新文章
- Cloud Toolkit 应用部署、文件上传支持上传进度实时展示...
- 快照方式备份mysql 数据库
- android不同机型上界面适配问题
- 使用tensorflow出现 ImportError: DLL load failed: 找不到指定的程序
- cisco vPC技术
- Sharepoint学习笔记—ECM系列--4 根据位置设置的默认元数据值(Location-Based Metadata Defaults)
- SQL Server 2005大小写敏感设置
- 测试经理管理团队应注意的点
- 用java怎么实现多语言翻译_快速实现中文翻译多国语言
- Ext-Ext4文件系统_日志JBD2
- 我的爬虫(一)之抓取优美图库图片
- 打字测试软件 tt,打字测试(TT)
- quartz 表结构 oracle,Quartz所使用的表的说明
- GrapeCity Documents for PDF[GcPDF]
- <!DOCTYPE html>是什么意思?
- alios thing 信号量_AliOS Things内核API
- schedule_delayed_work()
- 使用redis incr处理并发问题
- 关系模式的完整性约束
- bzoj4544: 椭圆上的整点
热门文章
- Qt 自定义仪表盘控件
- 小程序无缝滚动_使用主题和功能标志无缝解决大型角度应用程序中的样式问题...
- SpringBoot的发送邮件到163.com邮箱
- 【面试指南】AI算法面试
- 16系列显卡支持的计算机系统,GTX16系列显卡:GTX10系列显卡,正式再见
- python实现日历功能_python学习笔记之—— calendar(日历)模块
- 如何自定义3CX电子邮件模板
- Cost Component Group
- STM32详解一startup_stm32f10x_hd_vl(超值类型STM32F100xx)和startup_stm32f10x_hd(大容量的STM32F101xx,STM32F102xx,S)
- Matlab中如何修改x轴为汉字或字母?Matlab中如何将x轴设定为字母或者其他?