如何在 Android TV 应用上禁用 Playback ControlGlue?
Posted
技术标签:
【中文标题】如何在 Android TV 应用上禁用 Playback ControlGlue?【英文标题】:How to disable Playback ControlGlue on Android TV app? 【发布时间】:2019-11-27 06:29:08 【问题描述】:我想制作一个像传统电视一样的android TV应用,当按下遥控器上的向上和向下按钮时,电视频道就会切换。我已经映射了 onKeyDown 监听器。但是,每次我按下按钮时,都会出现“播放控制胶水”。需要再按一次按键触发监听切换频道。
播放控制胶: https://developer.android.com/training/tv/playback/transport-controls
有什么办法可以关闭 控制胶水”不显示?由于我的应用程序播放直播,我不希望用户暂停视频,并且无法搜索。
另外,监听器如何不通过“控制胶水”而立即获得 keydown 事件?
谢谢。
附:我不熟悉Android开发。我正在修改 Kotlin 中的 TV 示例代码。
【问题讨论】:
你在哪个类中覆盖onKeyDown
?
@BenjaminBreiby on PlayBackActivity github.com/y2kbug-hk/dev.thematrix.tvhk/blob/master/app/src/…
【参考方案1】:
如果你想在活动中处理关键事件,而不是通过控制胶水,你可以在你的活动中覆盖dispatchKeyEvent
。
像这样:
@Override
public boolean dispatchKeyEvent(KeyEvent event)
if (event.getKeyCode() == KeyEvent.KEYCODE_DPAD_UP
|| event.geyKeyCode() == KeyEvent.KEYCODE_DPAD_DOWN)
//switch channel
return true;
return super.dispatchKeyEvent(event);
【讨论】:
虽然它在 AndroidStudio 中显示错误,但它可以工作。谢谢。 ***.com/questions/41150995/… 我发现每次按键都会触发我的功能两次。 KeyEvent 是否包括上键和下键? github.com/y2kbug-hk/dev.thematrix.tvhk/blob/master/app/src/…dispatchKeyEvent
在您按下一个键时会被多次触发。一次按下,然后多次按住按钮,最后一次释放按钮。您可以像 event.getAction() ==
KeyEvent.ACTION_DOWN
或 KeyEvent.ACTION_UP
那样检查正在调度的事件。我建议在 ACTION_UP 上做出反应,但如果你想在 ACTION_DOWN 上做出反应,你可以检查它是否是像这样event.getRepeatCount() == 0
的初始按下。以上是关于如何在 Android TV 应用上禁用 Playback ControlGlue?的主要内容,如果未能解决你的问题,请参考以下文章
如果应用程序使用网络浏览器链接,如何通过 Android TV 的 Google Play 商店资格?
被拒绝的应用 Google Play 上没有适用于 Android TV 的全尺寸应用横幅
应用被拒绝。适用于 Android TV 的 Google Play 资格问题
Android TV 模拟器是空白的。如何查看 Google Play Store 等应用?