Android TV Studuy1-2

DayNight Mode实现Android夜间模式 DayNight Mode实现Android夜间模式![在这里插入图片描述] 期末设计开发了一个小说阅读器,里面涉及到白天/夜间模式的切换,特拿出来试验,验证DayNight Mode标准 利用DayNight Mode标准实现Android白天/夜间模式切换,主要用到控制器UiModeManager。 UiModeManager主要用来进行模式切换。它是Android系统SDK本来就提供的模式切换系统。利用该控制器外加一套白天/夜间模式的资源(UiModeManager会根事件自动在两个模式之间切换),即 阅读详情
Handling TV Hardware
处理电视的硬件


电视的硬件和其他的android 设备有本质上的区别。电视没有一些其他android 设备有的东西,例如触摸屏,摄像头,gps接收器。
电视同时也完全的依靠中等硬件设备。为了让用户和电视应用交互,他们必须使用远程控制或者游戏pad。
当你建立一个TV的app的时候,你必须小心的考虑硬件的限制和在tv硬件操作的需求。


这个课程告诉你怎么去检查你app是否运行在TV上面,怎么去处理不支持的硬件特性feature,同时讨论处理TV设备的控制器的需求


---------------
检查TV设备。
如果你穿件的app 将会TV设备和其他的设备上面运行,那么你可能需要检查当前运行app的设备是什么设备。
例如,如果你有一个app 可以通过Intent 来启动,你的应用应该检查设备的属性来决定是否应该启动改一个TV-oriented activity 还是一个手机的


acvitity


建议的方法是使用UiModeManager.getCurrentModeType() 方法去检查设备是否运行在TV mode。
public static final String TAG = "DeviceTypeRuntimeCheck";


UiModeManager uiModeManager = (UiModeManager) getSystemService(UI_MODE_SERVICE);
if (uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION) {
    Log.d(TAG, "Running on a TV Device")
} else {
    Log.d(TAG, "Running on a non-TV Device")
}
检查TV设备。
----------------


----------------
处理不支持的硬件特性features
依据你app的设计和功能,你可能能处理一些不支持的hardware feature 硬件特性。
这部分讨论那些feature 是不适合TV的,怎么检测缺失的硬件特性,加你替代显示使用这些特性
不支持的硬件特性:
电视和其他设备相比有不同的目的,所以他们没有一些其他android支持设备有的。有了这个原因,android 系统不支持下面的特性:
Hardware Android feature descriptor
Touchscreen android.hardware.touchscreen
Touchscreen emulator android.hardware.faketouch
Telephony android.hardware.telephony
Camera android.hardware.camera
Near Field Communications (NFC) android.hardware.nfc
GPS android.hardware.location.gps
Microphone [1] android.hardware.microphone
Sensors android.hardware.sensor
[1] Some TV controllers have a microphone, which is not the same as the microphone hardware feature described here. The controller 


microphone is fully supported.
注意有一些TV有遥控器的麦克,这个和我们上面的麦克是不同,遥控器麦克是全部支持的。
See the Features Reference for a complete list of features, subfeatures, and their descriptors.




声明TV硬件需求
Android 应用可以声明硬件特性需求在应用的清单文件中,这样的话,如果设备上面不具备这个特性的话,就不会安装在该设备上面。
如果你正在将一个现有的应用扩展到TV上面,密切的复查你的应用的清单文件的任何的硬件需求声明,这些声明可能会阻止你的应用安装在TV设备上面。


如果你的应用使用了硬件特性,例如触摸屏或者摄像头,这些在TV上面不适合的,但是可以操作不需要这些特性,修改你的清单文件将这些特性表示为not 


required。下面这些指出怎么声明你的应用步需要一些硬件特性他们不适合TV 设备,虽然你的应用可能使用到这些特性在非tv的设备上面。
<uses-feature android:name="android.hardware.touchscreen"
        android:required="false"/>
<uses-feature android:name="android.hardware.faketouch"
        android:required="false"/>
<uses-feature android:name="android.hardware.telephony"
        android:required="false"/>
<uses-feature android:name="android.hardware.camera"
        android:required="false"/>
<uses-feature android:name="android.hardware.nfc"
        android:required="false"/>
<uses-feature android:name="android.hardware.location.gps"
        android:required="false"/>
<uses-feature android:name="android.hardware.microphone"
        android:required="false"/>
<uses-feature android:name="android.hardware.sensor"
        android:required="false"/>
Note: Some features have subfeatures like android.hardware.camera.front, as described in the Feature Reference. Be sure to mark as 


required="false" any subfeatures also used in your app.
注意:一些特性有一些子特性,例如前置摄像头,确定将所有的子特性的required


所有的将要啊装在TV设备上面的应用必须声明touch screen 特性为false,就像前面一章里面说的。如果你的应用使用了一个或者几个上面列出的feature


,请将required 设置为true。
注意:声明一个硬件特性为required,将会阻止你的应用安装在V设备上面或者出现在Anroid的主屏幕launcher上面。


一旦你决定了去将硬件特性设置为可选的在你的app中,你必须在运行时检查这些特性是否可用同时适时地调整你应用的行为。
在下面一节讨论怎么检查硬件特性并且建议一些方法来改变你的应用的行为。


声明一些权限,这些权限用来指示硬件特性。
+++++++++++++++这里多了一个from++++++++++
一些uses-permission 清单文件声明 意味硬件特性。这个行为意味着在你的应用里面请求一些权限会使得你的应用不会在安装和使用TV设备上面。
下面的蟾宫请求权限创建了一个暗指硬件特性请求;
Permission Implied hardware feature
RECORD_AUDIO android.hardware.microphone
CAMERA android.hardware.camera and 
android.hardware.camera.autofocus
ACCESS_COARSE_LOCATION android.hardware.location and 
android.hardware.location.network
ACCESS_FINE_LOCATION android.hardware.location and 
android.hardware.location.gps


对于一个全部的权限列表请求暗示着一个硬件特性请求,查看uses-feature guide
.如果你的应用,请求了一个上面列表中的应用,将一个uses-feature包含在你的清单文件为了暗示硬件特性的,这个硬件特性被标识为not required


(android:required="false").


检查硬件特性:
Android 框架可以告诉你是否硬件特性适合你现在运行的设备。使用hasSystemFeature(String) 方法去检查运行时的特定属性。
这个方法使用一个单独的参数,这个参数指定了需要检查的特性。
// Check if the telephony hardware feature is available.
if (getPackageManager().hasSystemFeature("android.hardware.telephony")) {
    Log.d("HardwareFeatureTest", "Device can make phone calls");
}


// Check if android.hardware.touchscreen feature is available.
if (getPackageManager().hasSystemFeature("android.hardware.touchscreen")) {
    Log.d("HardwareFeatureTest", "Device has a touch screen.");
}


Touch screen:触摸屏
因为TV没有触摸屏,所以Android 在电视设备上面不支持触摸屏。还有,使用触摸屏也步显示,因为用户一般是坐在离显示屏10英寸远的地方。
保证你的UI项目和文字部分没有请求和使用触摸屏


在电视设备上面,你应该设计你的应用支持电视遥控器的上下左右键。更多的请查看Creating TV Navigation。就是1-4的内容。


摄像头:
虽然,一个TV电视标准上是没有摄像头的,你还是可以提供一个相片相关的应用的。例如你有一个应用可以拍照片,查看照片以及编辑照片,你可以将拍照


的功能在电视端禁用,同时允许用户去查看甚至编辑照片。如果你决定允许你的摄像头相关应用在TV电视端运行,将下面的特性申明添加进去。
<uses-feature android:name="android.hardware.camera" android:required="false" />
如果你允许你的应用运行的时候没有摄像头,那么添加相关的代码到你的应用,这些代码可以检测摄像头特性是否使用同时做出相应的操作。
下面的代码实例演示了怎么检测摄像头的存在。
if (getPackageManager().hasSystemFeature("android.hardware.camera")) {
    Log.d("Camera test", "Camera available!");
} else {
    Log.d("Camera test", "No camera available. View and edit features only.");
}


GPS,TVs 电视是固定的,在房子里面的设备,没有穿件内部的GPS接受者,
如果你的应用使用地址信息,你可以允许用户去搜索地址,或者使用一个静态地址提供者例如zip code(邮政编码),这个zip code(邮政编码) 是在TV


设备安装的时候配置的。
// Request a static location from the location manager
LocationManager locationManager = (LocationManager) this.getSystemService(
        Context.LOCATION_SERVICE);
Location location = locationManager.getLastKnownLocation("static");


// Attempt to get postal or zip code from the static location object
Geocoder geocoder = new Geocoder(this);
Address address = null;
try {
  address = geocoder.getFromLocation(location.getLatitude(),
          location.getLongitude(), 1).get(0);
  Log.d("Zip code", address.getPostalCode());


} catch (IOException e) {
  Log.e(TAG, "Geocoder error", e);
}


处理不支持的硬件特性features
----------------




----------------
处理控制器






处理控制器
----------------


、















































U8+ 新建账套 一、登录 账套主管:demo 对账套有修改权限,有账套库权限 系统管理员:admin 其他所有权限 二、新建账套 admin登录–>点击系统管理–>账套–>建立 选择了参照已有账套结转期初:就是上一个的期末数据作为这一次新表的期初数据 启用会计期一旦选择更改不了。 ... 阅读详情

相关推荐

TBtools的序列提取步骤

本教程详细介绍了如何使用TBtools软件从原来的FASTA序列中提取特定的DNA序列。

weixin_47509995的博客 1万+

Android 判断设备类型(手表,车,电视,手机)

UiModeManager uiModeManager = (UiModeManager) context.getSystemService(UI_MODE_SERVICE); if (uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION) { Logger.d(TAG, "Running on a TV Device"); } else { .

qq_32671919的博客 5101

代谢组学数据分析实战:用R语言从PCA、PLS-DA到OPLS-DA一步步搞定(附代码)

本文详细介绍了使用R语言进行代谢组学数据分析的全流程,从数据预处理到PCA、PLS-DA和OPLS-DA模型构建与验证。通过实际案例和代码示例,帮助研究者掌握关键分析技术,提升数据解读能力,特别适合生命科学领域的研究人员。

weixin_28689507的博客 133

android 系统UI模式的判断

目前我们强大的android系统已经遍及手机,电视,等各个方面。 那么如何判断一个android系统 是支持手机UI 还是 boxUI呢。 如果知道这一属性,那么我们就可以在开发应用程序的时候对这个属性做判断(比如让我们的手机应用不能运行在box上)。怎么做到这一点呢, 今天我就给大家带来方法:  UiModeManager mUiModeManager = (UiModeManager)g

a22422931的博客 4071

嵌入式设备低功耗设计误区:为什么你的RK3568总是被‘意外’唤醒?

本文深入分析RK3568嵌入式设备低功耗设计中的常见误区,重点探讨唤醒源管理不当导致的意外唤醒问题。通过解析硬件设计陷阱、软件配置错误及系统化审计方法,帮助开发者有效排查和解决GPIO配置、唤醒源设置等关键因素引起的功耗异常,提升设备续航能力。

php55的博客 460

MCGSPro动画部件实战:用文本分段实现智能报警提示(附工程文件)

本文详细介绍了在MCGSPro组态软件中,如何利用动画部件的文本分段功能,高效实现触摸屏上的智能报警提示。通过绑定整数变量作为索引,一个部件即可动态切换多种状态信息,解决了传统方法画面臃肿、维护繁琐的痛点。文章提供了从变量定义、部件配置到逻辑联动的完整实战教程,并分享了工程文件复用与性能优化技巧。

weixin_28347369的博客 167

UiModeManager设置夜间模式和行车模式

Android在2.2时新增了一个实用的类UiModeManager可以方便的管理当前Android设备的夜间模式和行车模式,位于android.app.UiModeManager这个包中。UiModeManager类使用Context.getSystemService(Context.UI_MODE_SERVICE) 来实例化,主要提供了以下几种方法void  disableCa

Giegie的专栏 4272

智能绿植管家:基于 ESP32 的室内植物自动补光与环境调控系统

本文设计的基于 ESP32 的室内植物自动补光与生长环境调控系统,实现了植物生长环境的自动化、智能化管理。硬件选型合理、接线简单,软件逻辑清晰、易于调试,能够有效解决室内植物生长环境不适的问题。系统具备良好的实用性和扩展性,可为园艺爱好者和小型培育场所提供稳定、高效的植物养护方案。

weixin_42300449的博客 147

UiModeManager 最简单切换模式的途径

这是源码,通俗易懂,就贴出来了。

欸奥维 5467

HSM 网络安全 信息安全

HSM HSM信息安全功能 汽车电子网络安全中HSM 的应用场景 选择适合汽车电子网络安全的 HSM 符合汽车安全标准和法规要求的HSM HSM 在汽车电子网络安全中的可靠性和安全性 评估汽车电子网络的安全性 汽车 HSM(Hardware Security Module)模块开发 汽车 HSM(Hardware Security Module)模块测试

天赐好车的博客 1238

数字逻辑Fundamentals of Digital Logic with Verilog Design | 3rd Edition Solutins Chapter 2(step by step)

数字逻辑第二章习题和详细步骤 2-1 ~ 2-78

weixin_62651190的博客 2308

【oschina android源码分析】切换夜间模式的实现

切换夜间模式

有心好书 1065

实战交易策略 篇二十二:情绪流龙头交易策略

在股票市场中,机构主导趋势,游资驱动热点,散户易被情绪裹挟,形成“金字塔”式生态链,并存在情绪传递、强者恒强、物极必反的规律特点。股市是资金驱动的情绪博弈场,价格波动由群体心理、资金博弈和预期差共同驱动,核心是资本逐利性与人性贪婪恐惧的交织,兼具资源配置、财富再分配与风险定价功能。涨停加速与逃逸缺口(主升强化)凹字板/平台突破(趋势延续)天量弱转强(分歧买点)不参与首波(二波策略)情绪周期(道术合一)主线思维(聚焦核心)开盘抢筹(竞价博弈)一字助攻(情绪强化)分批进出(滚动操作)

生活在别处 1499

android判断是否是深色模式

判断系统是否是深色模式和判断当前app是否是深色模式不一样。 系统是深色模式,但此app自己代码单独设置了不是深色模式, (用下列代码设置成非深色模式 AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); ) 此时 UiModeManager uiModeManager = (UiModeManager) context.getSystemService(Context.UI_MODE_SERVICE);

coraline1991的专栏 6843

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Android 13 深色主题切换流程解析

深色主题设置方法:两种设置方法流程是一样的。 * 通过下拉状态栏的快捷按钮深色主题切换; * 通过 设置→显示→深色主题开关 切换;

star_nwe的博客 1978

RK3128 Android 7 BOX SDK 修改为MID界面-近期任务

前文 RK3128 Android 7 BOX SDK 修改为MID界面 一文中已经调整好了Launcher和SystemUI, 满足日常调试使用. 新的问题 近期任务中的任务不能拖动, 只能用于切换, 这也就导致APP开发的调试中不能通过近期任务来结束后台应用. TV模式: 手机/平板模式: 跟踪 先看下当前的窗口信息: dumpsys window Window #2 Window{a225ed0 u0 com.android.systemui/com.android.systemui.r

ansondroider的博客 2788

Android TV开发总结(一)构建一个TV app前要知道的事儿

前言:近年来,智能电视的发展如火如荼,Googel 也在大力推进TV及穿带设备的发展,在互联网的风口,是猪也会飞,这句话并不是没有道理的。传统电视机厂商,基本都转型致力于智能电视的相关业务,今天的Agendda如下: - 处理电视硬件 - app上检查电视设备 - 处理不支持的硬件features - Declaring hardware requirements for TV

欢迎关注公众号:【码农突围】,公号后台回复9999,可以获取一份500页的LeetCode刷题笔记。 4万+

android tv record,Android TV开发总结(一)构建一个TV app前要知道的事儿

前言:近年来,智能电视的发展如火如荼,Googel 也在大力推进TV及穿带设备的发展,在互联网的风口,是猪也会飞,这句话并不是没有道理的。传统电视机厂商,基本都转型致力于智能电视的相关业务。处理电视硬件app上检查电视设备处理不支持的硬件featuresDeclaring hardware requirements for TV声明权限意味着硬件要具有该特性检查硬件Features处理控制器断开场...

weixin_39893893的博客 390

android如何获取电视的存储空间,Android TV (二)(处理电视硬件)

电视硬件基本上不同于其他Android设备。电视不包含一些硬件特性相比于其他电视设备,例如触屏、相机、GPS。电视也完全依赖于二次硬件设备。为了使用户和应用之间能够交互,必须使用远程遥或者游戏手柄。当你创建电视应用时,你必须仔细考虑硬件的局限性和操作电视硬件的要求。检查电视设备如果你创建的应用既操作电视设备也操作非电视设备,你可能需要检查你的应用当前运行在那种设备上来进行调整。例如,如果你有一个可...

weixin_42354108的博客 452

Android白天/夜间模式Day/Night Mode标准原生SDK实现

Android白天/夜间模式Day/Night Mode标准原生SDK实现章节A:Android实现白天/夜间模式主要控制器在于UiModeManager,UiModeManager是Android系统SDK本来就提供好的白天/夜间模式的实现控制系统。然而仅有UiModeManager还不够,同时需要写一套白天/夜间模式的资源,涉及到res/drawable或者values/color的设...

weixin_34221073的博客 822

android屏幕适配详解

官方地址:http://developer.android.com/guide/practices/screens_support.html   一、关于布局适配建议 1、不要使用绝对布局 2、尽量使用match_parent 而不是fill_parent 。 3、能够使用权重的地方尽量使用权重(android:layout_weight) 4、如果是纯色背景,尽量使用android的...

weixin_33711641的博客 586

android 电视适配_在Android上检测电视功能

android 电视适配 我在google plus上写了一篇帖子,可能会引起更多读者的兴趣。 如果您是Android应用程序开发人员,并且希望您的应用程序在电视或机顶盒上运行良好,则需要知道是否需要专门为这些设备处理焦点。 这是一种知道何时在此类设备上运行的方法。 Android具有以下可检查的系统功能。 android.hardware.type.television 如果设备...

511

乐视tv真机开发调试,乐视盒子开发者模式,乐视android 开发调试模式

http://bbs.letv.com/thread-1348702-1.html?extra=page%3D1 可以调试,可以用遥控器顺序按: 信号源,1,4,7 四个按键即可切换成debug模式。

Kodulf的专栏 1万+

Android TV 的开发者模式的打开,Android TV模拟器的开发者模式打开

Settings ->About 然后点击Build 6次就可以了。

Kodulf的专栏 1万+

乐视盒子UI 官方下载地址

http://bbs.letv.com/thread-156571-1.html c1s各版本(官方&第三方)ROM下载:各版本地址均从本网站取得,所以不存在盗版及侵权之说. 名称                                                       下载地址 C1S LetvUI 3.0 (石头稳定版)                  htt

Kodulf的专栏 6332

2.4 Android SDK在线更新镜像服务器,Androidsdk 在线更新

http://www.apkbus.com/portal.php?mod=topic&topicid=27 Android SDK在线更新镜像服务器 中国科学院开源协会镜像站地址: IPV4/IPV6: http://mirrors.opencas.cn 端口:80 IPV4/IPV6: http://mirrors.opencas.org 端口:8

Kodulf的专栏 5970
上一篇: Android TV Study 1-1
下一篇: Android Wear 进阶 - 1 Notification
千雅爸爸
博客等级 码龄18年 292粉丝 639原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值