1

对于我的示例,我创建了简单的电视应用程序添加按钮“关机”并尝试关闭我运行它的模拟器。

首先,我试图在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 tv 无法解决的运行时权限。

我还尝试了Android 的选项:如何以编程方式打开和关闭屏幕?

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);

知道我可以尝试什么吗?谢谢你的帮助

4

2 回答 2

2

有些电视确实有一个 REST API,您可以使用它来调用相当于遥控器上的点击。我在 Sony Bravia 系列中使用过它,但我不确定其他电视是否会有它。

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

于 2019-01-30T17:12:01.843 回答
1

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

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

于 2019-02-01T09:55:11.957 回答