【问题标题】:Android differentiate between a TV and a STBAndroid 区分电视和机顶盒
【发布时间】:2018-10-21 19:23:13
【问题描述】:

如何以编程方式区分 AndroidTV 上的电视和机顶盒/游戏机?此方法 (https://developer.android.com/training/tv/start/hardware) 不起作用,因为运行 AndroidTV 的 STB 被视为电视。

【问题讨论】:

    标签: android android-tv television


    【解决方案1】:

    你的目标是什么?

    这样做的明显原因是确定设备是否适合玩游戏。如果是出于任何其他原因,则需要详细说明目的以便获得适用的帮助。

    话虽如此......

    由于无法直接查询设备类型 - 就我个人而言,我会寻找只有游戏机才有的东西。
    换句话说:游戏控制器/游戏手柄。

    public ArrayList<Integer> getGameControllerIds() {
        ArrayList<Integer> gameControllerDeviceIds = new ArrayList<Integer>();
        int[] deviceIds = InputDevice.getDeviceIds();
        for (int deviceId : deviceIds) {
            InputDevice dev = InputDevice.getDevice(deviceId);
            int sources = dev.getSources();
    
            // Verify that the device has gamepad buttons, control sticks, or both.
            if (((sources & InputDevice.SOURCE_GAMEPAD) == InputDevice.SOURCE_GAMEPAD)
                    || ((sources & InputDevice.SOURCE_JOYSTICK)
                    == InputDevice.SOURCE_JOYSTICK)) {
                // This device is a game controller. Store its device ID.
                if (!gameControllerDeviceIds.contains(deviceId)) {
                    gameControllerDeviceIds.add(deviceId);
                }
            }
        }
        return gameControllerDeviceIds;
    }
    

    当然,这不是万无一失的。显然,如果当时拔掉游戏手柄(不确定何时会发生),则不会返回任何内容。更不用说,一些电视支持游戏手柄(首先想到的是三星)——但是,如果您打算验证应用程序是否有足够的输入可用,那么这将是理想的。

    如果游戏手柄不存在,可能会显示一条消息,说明“请连接游戏手柄”。 -- 在后台不断检查,一旦检测到就自动继续。

    【讨论】:

    • 就我而言,机顶盒对于游戏机来说同样重要,虽然您的回答在某种程度上解决了问题,但在我的情况下,它只能解决 20% 的情况。跨度>
    • @PokaYoke -- 所以问题是:区分设备类型的原因是什么? ...知道这将大大有助于帮助确定解决方案。
    • 我不能确切地说出为什么,但我想要一个能够区分电视和连接设备(STB/游戏机)的解决方案。该解决方案应该适用于大多数情况(至少 80% 的情况)。
    • 设备之间的区分通常基于用例场景(显示尺寸、渲染能力等)。由于无法请求设备类型,在不知道您所针对的特定功能的情况下,恐怕无法提供太多帮助。我肯定地说这是因为我为 SmartTV 开发应用程序。除非首先加载电视的 API,然后发出特定于该特定品牌(LG、三星等)的请求,否则无法向他们请求信息。您唯一的选择是寻找不依赖于操作系统的连接硬件.
    • 只是想问您是否可以接受我的回答。很抱歉,目前无法区分更倾向于游戏或电视的 Android 设备。 Android只是一个操作系统。 ... 确定 Android 设备的主要意图与尝试确定 Windows 机器是否用于游戏或生产力没有什么不同。检测游戏控制器可能是您的最佳选择。 ...我知道这不是您想要的答案,但如果您能接受我的回答,那仍然是礼貌的。
    猜你喜欢
    • 1970-01-01
    • 2012-03-05
    • 2012-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-23
    相关资源
    最近更新 更多