感谢您阅读我的问题,请耐心阅读。该场景与普通的 Android 应用程序有点不同。
我正在为 Android TV 创建自己的启动器。我拥有将我的应用程序作为系统应用程序运行的完全权限。
我有自己的启动器,我在其中放置小部件。在 Android 中,我们通常通过在主屏幕上拖放来放置小部件,但在我的情况下,我必须在启动器启动后立即放置所有小部件。我能够成功放置所有小部件。用户不允许更改小部件位置或不允许删除任何小部件。所有小部件都是固定的。
现在的要求是这样的,
对于 Android TV,我可以通过遥控器访问所有小部件和应用程序等。我可以通过遥控器访问所有内容,而不是触摸屏。
在我拥有所有小部件的主屏幕/启动器上,我需要实现空间导航。即我必须通过远程左/右/上/下键浏览所有小部件。
作为解决方案,我做了以下事情:
我已经处理了 onFocusChangeListener 来监听焦点更改事件,我还处理了 onClickListener 来处理 onClick 事件。
在焦点更改和单击时,我向每个小部件发送广播,以及额外的数据,即 got_focus、lost_focus 或 clicked。在每个小部件中,我都有一个接收广播的接收器,并且根据任何状态,小部件都会更改其背景图像。我已经在我的每个接收器中输入了日志。所有接收者都接收到各自的广播,但问题是改变状态的行为并不一致。有时小部件会改变状态,但有时它们不会,即使它们接收到广播。
所以,我想知道有没有其他方法可以使这种行为保持一致。任何在启动器上工作并遇到过相同情况的人,请帮助我。从过去的 3 天开始,我被困在这部分。有没有其他方法可以从启动器更新小部件背景图像。
感谢您耐心阅读。任何形式的帮助将不胜感激。
再次感谢。