是否可以通过android电视应用关闭电视设备?

时间:2019-01-30 08:50:01

标签: android android-tv android-powermanager

在我的示例中,我创建了一个简单的电视应用程序添加按钮“关闭电源”,并尝试在运行它的模拟器上将其关闭。

首先,我尝试在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);

任何想法我可以尝试什么?感谢您的帮助

2 个答案:

答案 0 :(得分:2)

某些电视确实具有REST API,您可以使用该API调用遥控器上的等效单击。我已经在Sony Bravia系列上使用了它,但是我不确定其他电视是否会使用它。

在任何情况下,都是特定于品牌的,并且与Android TV本身无关,因此您不能在所有设备上都依赖它。我找不到直接执行此操作的系统调用。

答案 1 :(得分:1)

在带有Oreo的Nvidia Shield上,设置应用程序具有诸如“立即休眠”和“重新启动”之类的按钮。如果您是我,我将看一看设置应用程序的源代码,并尝试查找这些按钮正在调用的API。也许看看这将至少告诉您从哪里开始。

https://android.googlesource.com/platform/packages/apps/TvSettings/+/master/Settings/src/com/android/tv/settings