在我的示例中,我创建了一个简单的电视应用程序添加按钮“关闭电源”,并尝试在运行它的模拟器上将其关闭。
首先,我尝试在https://developer.android.com/training/tv/start/hardware#hardware-permissions的文档中找到一些内容,但是没有硬件电源控件。
之后,我尝试了一些android移动选项,例如: programmatically set screen to off in android
例如: WRITE_SETTINGS
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, 1000);
我认为在这里获取android电视无法解决的运行时权限问题。
我还尝试了Android: How to turn screen on and off programmatically?处的选项
mWakeLock = mPowerManager.newWakeLock(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, "tag");
mWakeLock.acquire();
没有效果。
使用屏幕亮度进行操作也无效:
params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = 0;
getWindow().setAttributes(params);
任何想法我可以尝试什么?感谢您的帮助
答案 0 :(得分:2)
某些电视确实具有REST API,您可以使用该API调用遥控器上的等效单击。我已经在Sony Bravia系列上使用了它,但是我不确定其他电视是否会使用它。
在任何情况下,都是特定于品牌的,并且与Android TV本身无关,因此您不能在所有设备上都依赖它。我找不到直接执行此操作的系统调用。
答案 1 :(得分:1)
在带有Oreo的Nvidia Shield上,设置应用程序具有诸如“立即休眠”和“重新启动”之类的按钮。如果您是我,我将看一看设置应用程序的源代码,并尝试查找这些按钮正在调用的API。也许看看这将至少告诉您从哪里开始。