最近閑暇的時(shí)候就想寫一個(gè)看電視的app内狸,使用的是flutter灿里,手機(jī)上面操作可以觸屏云芦,但是電視上面怎么弄呢俯逾?于是上網(wǎng)搜了搜,原來(lái)是有專門的 組件可以接受遙控器輸入的舅逸。原本以為開發(fā)TV APP 調(diào)試會(huì)很麻煩桌肴,最后發(fā)現(xiàn)模擬器中有TV這種類型,里面是附帶遙控器的琉历,開發(fā)下來(lái) 變得非常的輕松愉快坠七,下面是本次開發(fā)過程中的一些技術(shù)分享,有需要的朋友可以參考旗笔。
Android Studio 里面的TV模擬器
模擬器中的遙控器
```
RawKeyboardListener(
? ? ? ? ? focusNode: FocusNode(),
? ? ? ? ? onKey: (value) {
? ? ? ? ? ? //debugPrint("遙控器:${value.data}");
? ? ? ? ? ? if (value.data is RawKeyEventDataAndroid) {
? ? ? ? ? ? ? var key = value.data as RawKeyEventDataAndroid;
? ? ? ? ? ? ? if (key.flags == 520) {
? ? ? ? ? ? ? ? //上19 下20 左21 右22 // 8是遙控器按下彪置,520是遙控器 彈起
? ? ? ? ? ? ? ? if (key.keyCode == 19) {
? ? ? ? ? ? ? ? ? debugPrint("遙控器:${value.data}");
? ? ? ? ? ? ? ? ? controller.previous();
? ? ? ? ? ? ? ? } else if (key.keyCode == 20) {
? ? ? ? ? ? ? ? ? debugPrint("遙控器:${value.data}");
? ? ? ? ? ? ? ? ? controller.next();
? ? ? ? ? ? ? ? } else if (key.keyCode == 21) {
? ? ? ? ? ? ? ? ? debugPrint("遙控器:${value.data}");
? ? ? ? ? ? ? ? ? controller.showMenu();
? ? ? ? ? ? ? ? } else if (key.keyCode == 22) {
? ? ? ? ? ? ? ? ? debugPrint("遙控器:${value.data}");
? ? ? ? ? ? ? ? ? controller.showMenu(show: false);
? ? ? ? ? ? ? ? } else if (key.keyCode == 23) {
? ? ? ? ? ? ? ? ? debugPrint("遙控器:${value.data}");
? ? ? ? ? ? ? ? ? controller.ok();
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? },
```